Bash 関数を使用した Bash ラッパーの作成

Bash 関数を使用した Bash ラッパーの作成

bashの記録設定を台無しにしようと少し心配です。独自のカスタムbashレコードを作成したいと思います。私は次のbash機能を使用することを考えました。

bash(){

  # write to a custom history file manually
  echo "$@" >> $HOME/my_bash_history

  command bash "$@" 

}

export -f bash;

しかし、それはまったく機能しません。何が起こると、それが引き継がれ、command bashもはやbash機能を経なくなります。すべてがカスタムファイルに書き込まれるように、このbash機能を実行するにはbashのすべての標準入力が必要です。これを行う方法を知っている人はいますか?

ベストアンサー1

必要なのは、DEBUGトラップ(すべてのコマンドの前に実行)またはトラップPROMPT_COMMAND(すべてのプロンプトの前に実行)です。

トラップはあなたの試みに近いです。基本的な概念は、次のトピックで説明されています。bashには、コマンドを実行する前に実行されるフックがありますか?完全なターンキーバージョンが存在します。bash プリラン

著者によると、bash-preexecの目的は次のとおりです。バッシュハーブ「クラウドのbash履歴」を提供するので、「ファイルのbash履歴」を実行できると確信しています。

おすすめ記事