変数を含む古いコマンドを再実行するためにBashに組み込まれているコマンド履歴機能を使用するときは、なぜ注意する必要がありますか?

変数を含む古いコマンドを再実行するためにBashに組み込まれているコマンド履歴機能を使用するときは、なぜ注意する必要がありますか?

コマンドの再実行について知っていますが、!!変数を含むコマンドを再実行すると正確にはどうなりますか?

ベストアンサー1

さて、一度試してみましょう:

$ foo=bar
$ echo $foo
bar
$ foo=qux
$ !-2
echo $foo
qux
$ history
...
  219  foo=bar
  220  echo $foo
  221  foo=qux
  222  echo $foo
  223  history

だからコマンドが履歴に追加されたようです今後変数拡張が発生しました。

おすすめ記事