関数内で履歴の最後のコマンドにアクセスします。

関数内で履歴の最後のコマンドにアクセスします。

現在の端末で、前のコマンドから最後のコマンドまでエコーする関数を作成しようとしています。これは予想される出力です(ここではこれを目的の関数と呼びますf)。

$ history 1
history 1
$ f
history 1

追加の質問:history(1)現在の端末の記録はどこに保存されていますか?端末セッションが終了すると、記録は通常$HISTFILE(私の場合~/.bash_history)に保存されることがわかります。さて、history(1)現在実行中の端末の履歴がどこにあるのか知りたいです。

答え1

解決策が見つかりました。

f()(echo $(history 2 | head -n1 | cut -d' ' -f2-))

fcまたはG-Manが提案したように使用してください。

f()(fc -ln -1)

テスト:

$ echo 123*
123*
$ f
echo 123*

関連情報