以下の記事を読んだのでbashだとどうなるのかと思い調べました。
背景
解決したかったこと
通常の terminal から実行した zsh のコマンドは履歴に保存されるが、VSCode で開いた zsh で実行したコマンド履歴が保存されない。
原因
通常は zsh を終了したときに、そのセッションで実行していたコマンド履歴が ~/.zsh_history に保存されます。
しかし、VSCode で開いた zsh では、通常の終了処理が行われず、コマンド履歴が保存されないようです。
TLDR
以下をbashrcに追加しておく。
.bashrc
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
解説
shopt -s histappendを設定すると、シェルに入力された新しいコマンドがHISTFILE変数の値で指定されたファイルに追加されます。これで.bash_historyの上書きを防ぎます。
二行目で各コマンドを実行する前にhistoryに追加することをしています。