【问题标题】:Setting ${PWD} in PS1 variable does not work in Korn Shell在 PS1 变量中设置 ${PWD} 在 Korn Shell 中不起作用
【发布时间】:2014-02-26 16:16:36
【问题描述】:

我在 Solaris 5.10 中将以下内容设置为我的 PS1 变量

PS1="\[${USER}@`uname -n` ${PWD}]\$ "

当我启动终端会话时,它会显示正确的目录(即我的主目录),但是当我切换到其他目录时,它实际上不起作用。它仍然继续显示我的主目录。

知道为什么会发生这种情况以及如何纠正吗?

【问题讨论】:

    标签: ksh ps1


    【解决方案1】:

    " 中包含的字符串中包含的变量在第一次遇到时得到评估。

    $PS1 在每次显示之前都会被评估。

    您需要转义$ 以推迟对$PWD 的评估:

    PS1="\[\${USER}@`uname -n` \${PWD}]\$ "
    

    【讨论】:

    • 虽然这对我有用,但我对转义有点困惑,尤其是第一个 [ 和最后一个 $。有人可以为我解释一下吗?
    • shell 提示符被插入 2 次。 1 在创建分配时,第二次在运行时。
    • 好的,谢谢!最后一个似乎没有转义的']'怎么样?
    • 因为只有开场才开始解释过程;所以没有开口的右括号没有特殊含义
    猜你喜欢
    • 1970-01-01
    • 2020-10-10
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多