注意:不要为该示例案例提供更简单的解决方案,它只是为了显示问题而生成,订单来自真实的problem。
我尝试在“.bashrc”中更改我的PS1,不想在这里打印整个代码(但是在定义内部变量之前确实需要在文字中存储模板),问题总结为:
PROMPT_START='$PathShort'
PathShort="\w"
PS1="$PROMPT_START$"
结果我有:
\w$
但我希望:
~/java/git/shell$
但是如果让PS1像:
PS1="\w$"
结果将符合预期:
~/java/git/shell$
如何使用推迟变量($ PathShort)解析我的(第一个)变体PS1?
注意:我无法更改该变量的顺序,此问题是此problem
的结果答案 0 :(得分:0)
目前尚不清楚,你想在PS1中使用\w$
吗?然后使用PS1="\\\w$"
。当bash读取字符串时,它会将\
作为转义字符读取。因此,您需要通过在其前面放置另一个转义字符来提供文字\
。读这个,很有趣:) http://en.wikipedia.org/wiki/Leaning_toothpick_syndrome
答案 1 :(得分:0)
<强> .profile中:强>
function prompt() {
print $PathShort
}
export -f prompt
PS1='`prompt`$ '
<强>结果:强>
alevin $ . .profile
$ export PathShort=one
one$ export PathShort=two
two$ export PathShort=three
three$