履歴で最後に実行されたコマンドを文字列として取得し、bashの変数に保存します。

履歴で最後に実行されたコマンドを文字列として取得し、bashの変数に保存します。

最後に実行されたコマンドとオプションを取得し、ファイルに書き込む文字列として保存しようとしています。試してみましたが、fc次のコマンドのみが提供されます(とにかく私にとっては)。また、入力時に正しいコマンドを提供しようとしましたが、!!:p関数自体内で動作させることはできないようです。これを完了できますか?

これが起こったことです。arg私が欲しい文字列です。

#!/bin/bash                                                                     

foo(){
    read HISTNUMVAR < histnum.txt
    TEMPHNV=$(fc -l 0 | grep -o '^[0-9]*');
    if [ $TEMPHNV -ne $HISTNUMVAR ]; then
        arg=$(***last history command here***);
        ./write_arg_to_file.sh $arg;
    fi
    echo $TEMPHNV > histnum.txt;
}

このスクリプトは、正しいコマンド履歴を取得するだけでなく、必要なすべての操作を実行します。

ベストアンサー1

よりきちんとした方法があるかもしれませんが、以下を使用して履歴から前のコマンドをインポートできます。

prev=$(fc -ln | tail -2 | head -1)

おすすめ記事