Linuxで次のスクリプトを実行するとします。
/tmp/start.sh
コマンドを実行した後に最後に実行したコマンドの名前を取得する方法はありますか?
期待される出力
start.sh
答え1
対話型シェルbash
で履歴拡張を有効にします。
$ /some/path/script.sh
$ printf 'Basename of last command line: %s\n' "$(basename "!!")"
printf 'Basename of last command line: %s\n' "$(basename "/some/path/script.sh")"
Basename of last command line: script.sh
!!
最後のコマンドに置き換えられる履歴拡張イベントインジケータ。マニュアルの「歴史的拡張」セクションを参照してくださいbash
。
!!
完全なコマンドラインに展開されます。
シェルスクリプトでは入力したばかりで、古いスクリプトの名前を常に知ることができます。
/some/path/script.sh
echo 'script.sh just finished'