使用Bash的su用户名时找不到__git_ps1

时间:2018-10-01 20:16:44

标签: bash environment-variables sh

我当前的用户firstuser的默认Shell为/bin/sh

我的.profile是一行:

[ -f $HOME/.bash_profile ] && . $HOME/.bash_profile

我的.bash_profile是一行:

[ -f $HOME/.bashrc ] && . $HOME/.bashrc

我的.bashrc具有以下代码:

[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
export PS1='$(__git_ps1) \$  '

问题出在这里

$  su seconduser
Password:
bash: __git_ps1: command not found
$ 

注意:
seconduser的外壳程序为/bin/bash

我想要的是将我从firstuser进行的所有定制都携带到seconduser的外壳中。

1 个答案:

答案 0 :(得分:0)

您的代码将字面意义上的提示变量PS1设置为$(__git_ps1) \$。并且您的外壳程序会在显示提示时对其进行解释。

$(__git_ps1)尝试将__git_ps1作为命令运行并获取其输出-此command substitution。您确定要这样吗?在这种情况下,请确保该命令是有效命令,并且位于PATH中。