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 및 환경 파일이 이 설정을 수행하는지 찾을 수 없습니다.. 내가 만드는 모든 새 계정은 셸에서 명령을 실행할 때 이 오류를 생성하므로 이 설정은 전역 수준에 있어야 합니다. 여기 또는 관련 디렉토리에 있는 파일 중 하나에는 /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한 파일에 정의된 함수에 설정되어 다른 파일에서 실행될 수 있으며, 이 경우 추적을 더 자세히 탐색할 수 있습니다.

관련 정보