unit and acceptance testing, automation, productivity

How to reuse the last parameter in a terminal command

Say that you want to delete a branch both locally and remotely, the commands for that are:

git branch -d branch-name
git push --delete remote-name branch-name

But why do all that typing? It would be nice to be able to say to the second command: "use the parameter from the previous one".

Well, Bash got you covered 😎. The $_ symbol (variable?) is substituted by the shell with the parameter from the last command.

We can then write:

git branch -d branch-name
git push --delete remote-name $_

You might not be impressed by that in this scenario, but think how you could leverage this in a script or in combo with xargs.

Another useful trick when it comes to reusing the last parameter is !$. When hitting enter on a command with !$ the shell will not execute it, but prompt the command again, with the last parameter used in place of !$. Example:

$ ls ~/Desktop
$ ls -a !$
$ ls -a ~/Desktop

The simplest way to understand the difference between the two is to try them.

Leave the codebase better than you found it.