Skip to content

Instantly share code, notes, and snippets.

@lopesivan
Created April 29, 2022 16:37
Show Gist options
  • Save lopesivan/54a4a7ff850f376b7f2335141d7e705a to your computer and use it in GitHub Desktop.
Save lopesivan/54a4a7ff850f376b7f2335141d7e705a to your computer and use it in GitHub Desktop.

Bash has built in features to access the last command executed. But that's the last whole command (e.g. the whole case command), not individual simple commands like you originally requested.

!:0 = the name of command executed.

!:1 = the first parameter of the previous command

!:4 = the fourth parameter of the previous command

!:* = all of the parameters of the previous command

!^ = the first parameter of the previous command (same as !:1)

!$ = the final parameter of the previous command

!:-3 = all parameters in range 0-3 (inclusive)

!:2-5 = all parameters in range 2-5 (inclusive)

!! = the previous command line

etc.

So, the simplest answer to the question is, in fact:

echo !! ...alternatively:

echo "Last command run was ["!:0"] with arguments ["!:*"]" Try it yourself!

echo this is a test echo !! In a script, history expansion is turned off by default, you need to enable it with

set -o history -o histexpand

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment