1

注意:不要为那个例子提供更简单的解决方案,它只是为了显示一个问题而生成的,顺序是从实际问题中获取的。

我尝试在“.bashrc”中更改我的 PS1,不想在这里打印整个代码(但确实需要在定义内部变量之前以文字形式存储模板),问题总结为:

PROMPT_START='$PathShort'
PathShort="\w"
PS1="$PROMPT_START$"

结果我有:

\w$

但我希望:

~/java/git/shell$

但如果让 PS1 像:

PS1="\w$"

结果将如预期:

~/java/git/shell$

如何通过延迟变量($PathShort)解析通过我的(第一个)变体制作 PS1?

注意:我不能改变那个变量的顺序,这个问题是这个问题的结果

4

2 回答 2

0

。轮廓:

function prompt() {
   print $PathShort
}
export -f prompt
PS1='`prompt`$ '

结果:

alevin $ . .profile
$ export PathShort=one
one$ export PathShort=two
two$ export PathShort=three
three$
于 2013-04-16T22:55:44.530 回答
0

不清楚,你要\w$在PS1吗?然后使用PS1="\\\w$". 当 bash 读取字符串时,它会将 读取\为转义字符。因此,您需要通过在其前面放置另一个转义字符来提供文字\。读这个,很有趣 :) http://en.wikipedia.org/wiki/Leaning_toothpick_syndrome

于 2013-04-16T04:48:56.790 回答