PROMPT_COMMAND変数はどこに設定できますか?

PROMPT_COMMAND変数はどこに設定できますか?

インストールしましたドルッチインストールの一部として、プロンプトが一部変更されます。

...
# Optional. Enrich the bash startup file with completion and aliases.
drush init
...

プロンプトでコマンドを実行するたびに、次のメッセージが表示されます。

bash: __drush_ps1: command not found

コマンドは次のようにenv表示されます。PROMPT_COMMAND

PROMPT_COMMAND=__git_ps1 "\u@\h \w" "$(__drush_ps1 "[%s]") \\\$ "

グローバルレベルのどこかで、PROMPT_COMMAND変数がこの値に設定されているようですが、グローバル環境変数とプロファイルスクリプトにはありません。

コマンド実行drushとしてインストールされるため、このエラーメッセージは生成されません。いくつかのスクリプトを含むディレクトリがあります。rootrootroot.drushdrush

更新:drupalフォーラムでリクエストした後https://drupal.stackexchange.com/questions/198484/where-does-the-drush-installtation-command-set-the-prompt-command-variable/198487drushどのインストールコマンドがこの設定を生成したかを知っています。ログインすると、どのLinux bashファイルと環境ファイルがこの設定を実行しているかがわかりません。。私が作成するすべての新しいアカウントはシェルでコマンドを実行するとこのエラーを生成するため、この設定はグローバルレベルにする必要があります。ここまたは関連ディレクトリにあるファイルの1つには、/etc/{bash.bashrc,bash_completion, bash_completion.d,environment}ログイン時に変数を設定するコマンドが必要ですが、見つかりませんPROMPT_COMMAND

どんなアイデアがありますか?

ベストアンサー1

bashの起動中にロードされるファイルのリストは、マニュアルに文書化されています。 、~/.bash_profileおよび~/.profileはログインシェル~/.bash_loginに使用され、/etc/profileおよび~/.bashrc/etc/bash.bashrc一部のシステムでは同様)はインタラクティブシェルに使用されます。

これらのファイルには他のファイルが含まれていることがよくあり、見つける場所の完全なリストを提供するための一般的な規則はありません。

実行しますbash -ix </dev/null 2>trace(またはbash -lx </dev/null 2>/traceログインシェルを起動したい場合)。これにより、bashによって実行されたすべてのコマンドのトレースがこのtraceファイルに書き込まれます。PROMPT_COMMANDそのトレース内で検索し、その前のsourceor.コマンドを検索して設定された場所を見つけます。PROMPT_COMMANDあるファイルで定義された関数に設定され、別のファイルで実行される可能性があります。その場合、トレースをさらに詳しく調べることができます。

おすすめ記事