问题
Say I want to include an escape sequence dynamically:
if [ -n $something ]; then
user="\u"
else
user="admin"
fi
PS1='$user@\h$ '
The problem is, instead of filling in the user name, my prompt looks like this:
\u@ubuntu-1$
Even if I escape the backslash (user="\\u"
) it still does not print out the user name. How do I get the prompt to look like this:
andreas@ubuntu-1$
回答1:
Use double quotes when you are trying to interpolate variables and want them to expand.
You also have another option, instead of dealing with \u
and complications with when the interpretation of it happens.
if [ -n $something ]; then
user=`whoami`
else
user="admin"
fi
PS1="$user@\h$ "
来源:https://stackoverflow.com/questions/23819927/unable-to-add-escape-sequences-dynamically-for-ps1