~/.bash_history
タイプミスのあるコマンドまで、私が実行したすべてのコマンドを確認して表示できました。成功したコマンド(終了コード0など)のみを保存する方法はありますか?
注:私はbashとzshを使っています。
答え1
~/.bashrc
ファイルに保存
good_history(){
exit_status=$?
if ((!exit_status)); then
history 1 >> history.txt
fi
}
export PROMPT_COMMAND="good_history"
~/.bashrc
ソースを実行した後source ~/.bashrc
上記の構成は関数定義です。
function_name() { command_goes_here; }
終了したコマンドのみが
0
ファイルに保存されます。history.txt
シェルに関する限り、終了状態は成功で
0
、そうでなければ失敗です。組み込み変数は、
$?
対話式であるかどうかにかかわらず、最後に実行されたコマンドの最後の終了状態を維持します。数学的文脈では、
0
bashでは失敗し、1
theでは成功する(( ))
ため、bang文字の使用を無効にします!
。help test
>>
その項目が指す場所(この場合はファイル)に追加されます。PROMPT_COMMAND
シェルセッションで実行したい変数の bash マニュアルのセクションを参照してください。PAGER='less +/^[[:space:]]*PROMPT_COMMAND' man bash
必要な場合も必要ない場合もありますが、ファイルにどのような設定があるか
export
わからないので、そこにあります。shellrc
- 誰かがそれを使用するのを待っています。
zsh