すべてのbashコマンドの後にスクリプトを呼び出す方法

すべてのbashコマンドの後にスクリプトを呼び出す方法

hey.shこの例では、各bashコマンドの後に名前付きスクリプトを呼び出すことはできますか?

たとえば、lsEnter キーを押して ls run と入力するとhey.sh実行されます。

だからあなたは入力cd .. (または他のコマンド)、cdhey.shなどが実行されます。

答え1

PROMPT_COMMAND+="hey.sh;"

PROMPT_COMMANDが設定されている場合、この値は各デフォルトプロンプトが実行される前にコマンドとして実行されます。


注:環境変数とシェル変数

基本的にPROMPT_COMMANDはいいいえ一つ環境変数。これはただシェル変数

両方の型の変数は同じ方法でアクセスされますが("$variable*"環境変数子プロセスによって継承されますが、シェル変数いいえ。

慣例は大文字で環境変数+シェルのシェル変数を設定します(PROMPT_COMMANDはシェルを設定します)。ただし、他の型の変数は小文字のままにしてください。

存在する強く打つ、次のことができます。declare -p変数がエクスポートされたことを確認します(=は環境変数です)。

$ declare -p PATH
declare -x PATH=... #-x means it's exported
$ declare PROMPT_COMMAND
declare -- PROMPT_COMMAND=... #no -x so just a shell variable

関連情報