![PROMPT_COMMAND 变量可以在哪里设置?](https://linux22.com/image/87707/PROMPT_COMMAND%20%E5%8F%98%E9%87%8F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%93%AA%E9%87%8C%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
我安装了德鲁什作为安装的一部分,它对提示进行了一些更改
...
# 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/198487我知道哪些drush
安装命令创建了该设置。我找不到哪个 Linux bash 和环境文件在登录时执行该设置。当我在 shell 中执行命令时,我创建的任何新帐户都会产生该错误,因此该设置必须位于全局级别。这里或相关目录中的文件之一/etc/{bash.bashrc,bash_completion, bash_completion.d,environment}
必须具有在登录时设置变量的命令PROMPT_COMMAND
,但我找不到它。
有任何想法吗?
答案1
bash 在启动期间加载的文件列表记录在手册中。 、~/.bash_profile
、~/.profile
和~/.bash_login
用于/etc/profile
登录 shell,以及~/.bashrc
(和/etc/bash.bashrc
或在某些系统上类似)用于交互式 shell。
这些文件通常包含其他文件,并且没有通用规则可以为您提供查看位置的详尽列表。
运行bash -ix </dev/null 2>trace
(或者bash -lx </dev/null 2>/trace
如果您想启动登录 shell)。这会将 bash 执行的所有命令的跟踪写入该trace
文件。PROMPT_COMMAND
在该跟踪中搜索,并在其前面搜索source
or.
命令以查找其设置位置。它可能是PROMPT_COMMAND
在一个文件中定义并在另一个文件中执行的函数中设置的,在这种情况下,您可能需要进一步探索跟踪。