web-dev-qa-db-ja.com

コマンドラインが実行されるたびにbashスクリプトを実行します

私は新しいUbuntu/Linuxユーザーです。上のタイトルとして質問したいと思います。

たとえば、bashファイル./scriptがあります。コマンドラインを入力すると、自動的に実行されます。コマンドラインpwdを実行すると、./scriptが実行されます。次のコマンドラインls -laを入力すると、./scriptが再度実行されます。

9
Ender Phan

Prompt_COMMAND変数を設定する必要があります。 man bashから:

Prompt_COMMAND
              If set, the value is executed as a command prior to
              issuing each primary Prompt.

たとえば、これはコマンドが実行されるたびに現在の日付を/tmp/PCに書き込みます。

 $ Prompt_COMMAND="date > /tmp/PC"
13

Prompt_COMMAND環境変数を探しています。この変数の値は、ターミナルで指定された各コマンドが実行された後、次のプロンプトを表示する直前にコマンドとして実行されます。

たとえば、次のように設定します。

export Prompt_COMMAND='/path/to/script'

最初にスクリプト/path/to/scriptを実行可能にします。

これで、各コマンドの後にスクリプトが実行されます。

ただし、変数をエクスポートしたくない場合、つまり環境変数ではなくシェル変数にする場合は、exportをドロップします。

Prompt_COMMAND='/path/to/script'

man bashから:

Prompt_COMMAND 
If set, the value is executed as a command prior to issuing each primary Prompt.
11
heemayl