首页 > 解决方案 > 使用 Bash 使用 su 用户名时找不到 __git_ps1

问题描述

我当前的用户 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 的 shell 中。

标签: bashenvironment-variablessh

解决方案


您的代码将提示变量设置PS1$(__git_ps1) \$字面意思。并且您的 shell 在显示提示时正在解释它。

$(__git_ps1)尝试__git_ps1作为命令运行并获取其输出 - 此命令替换。你确定你想要那样吗?在这种情况下,请确保它是一个有效的命令并且它在 PATH 中。


推荐阅读