无法为'PS1'动态添加转义序列

时间:2014-05-23 02:07:43

标签: bash .bash-profile

假设我想动态包含转义序列:

if [ -n $something ]; then
    user="\u"
else
    user="admin"
fi
PS1='$user@\h$ '

问题是,我的提示不是填写用户名,而是这样:

\u@ubuntu-1$ 

即使我转义反斜杠(user="\\u"),它仍然不会打印出用户名。如何让提示看起来像这样:

andreas@ubuntu-1$ 

1 个答案:

答案 0 :(得分:1)

在尝试插入变量并希望它们展开时使用双引号。

您还有另一种选择,而不是处理\u以及解释它时的复杂情况。

if [ -n $something ]; then
    user=`whoami`
else
    user="admin"
fi
PS1="$user@\h$ "