Onde estão os lugares onde a variável PROMPT_COMMAND pode ser definida?

1

Eu instalei o drush e como parte da instalação ele faz algumas alterações no PROMPT

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

Sempre que eu executo um comando no prompt, recebo a mensagem:

bash: __drush_ps1: command not found

O comando env exibe PROMPT_COMMAND as

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

Acho que em algum lugar no nível global a variável PROMPT_COMMAND está definida para esse valor, mas não consigo localizá-la em nenhuma das variáveis de ambiente globais e nos scripts de perfil.

Porque drush foi instalado como root comandos executados como root não produzem essa mensagem de erro. root tem um diretório .drush com alguns scripts drush .

ATUALIZAÇÃO: Após consultar o fórum do drupal link Eu sei qual dos comandos de instalação drush criar essa configuração. O que não consigo encontrar é qual dos arquivos bash e ambiente do Linux executam essa configuração no momento do logon . Qualquer nova conta que crie produz esse erro quando eu executar um comando no shell, portanto, a configuração deve ser em nível global. Um dos arquivos aqui ou nos diretórios relacionados /etc/{bash.bashrc,bash_completion, bash_completion.d,environment} deve ter o comando que define a variável PROMPT_COMMAND no tempo de logon, mas não consigo encontrá-lo.

Alguma idéia?

    
por vfclists 19.04.2016 / 09:31

1 resposta

1

A lista de arquivos que o bash carrega durante a inicialização é documentada no manual. Há ~/.bash_profile , ~/.profile , ~/.bash_login e /etc/profile para um shell de login e ~/.bashrc (e /etc/bash.bashrc ou similar em alguns sistemas) para um shell interativo.

É comum que esses arquivos incluam outros arquivos e não há uma regra geral que forneça uma lista completa de onde procurar.

Execute bash -ix </dev/null 2>trace (ou bash -lx </dev/null 2>/trace se você quiser iniciar um shell de login). Isso grava um rastreamento de todos os comandos que o bash executa no arquivo trace . Pesquise PROMPT_COMMAND nesse rastreio e pesquise um comando source ou . antes de encontrar o local em que foi definido. É possível que PROMPT_COMMAND esteja definido em uma função definida em um arquivo e executada em outro arquivo, caso em que você pode precisar explorar o rastreio mais adiante.

    
por 20.04.2016 / 02:44