インストールしましたドルッチインストールの一部として、プロンプトが一部変更されます。
...
# 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
としてインストールされるため、このエラーメッセージは生成されません。いくつかのスクリプトを含むディレクトリがあります。root
root
root
.drush
drush
更新: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
そのトレース内で検索し、その前のsource
or.
コマンドを検索して設定された場所を見つけます。PROMPT_COMMAND
あるファイルで定義された関数に設定され、別のファイルで実行される可能性があります。その場合、トレースをさらに詳しく調べることができます。