当前位置:Linux教程 - Shell - shell - 关于设置命令行提示符(PS1)

shell - 关于设置命令行提示符(PS1)

关于设置命令行提示符(PS1)
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

将提示符(PS1)设置成当前的路径,但不包括 $HOME
比如:
$HOME=/usr/wuhq
$PWD=/usr/wuhq/src
我想让提示符为:
src>
如果$PWD=/opt/java
我想让提示符为:
/opt/java>
以前看到过相关贴子,但找不着了
先谢过大虾!

In Korn Shell ,use:
PS1='${PWD##${HOME}}/>'

尊敬的斑竹:
好像不行唉!

而且有明显的错误嘛!
我改成
PS1='${PWD}##${HOME}/>'
也不行啊
输出:
/usr/users/weblogic/weblogic##/usr/users/weblogic/>
我用的是
Digital UNIX(好像是)



尊敬的taige:
是被论坛自动替换了,不是笔误。
应该这样写,偶试过了:(注意,偶用的是全角字符)
PS1='${PWD##${HOME}}/>'

斑竹多谢了

能否再进一步
如我提的第一个要求
$HOME=/usr/wuhq
$PWD=/usr/wuhq/src
我想让提示符为:
src>
而现在的情况下会显示为:
/src>
即我想把"/"去掉,否则容易引起误会

yes!
i have done!

PS1='${PWD##"${HOME}/"}>'


不知道斑竹是否就这个问题还有兴趣
现在我遇到的情况是这样:
$HOME=/a/very/long/home/path
我用上面的方法:
PS1='${PWD##${HOME}/}>'
则我在$HOME目录时提示符为:
/a/very/long/home/path>
进入子目录src,提示符为:
src>
我希望在$HOME目录时提示符为:
>
该怎么办?

你把两个}中间的/去掉便可以啊。

那样的话就出现了我先前说的那种情况
在子目录src时,提示符:
/src>
我不想要这个"/"

我希望第一个字符不是"/"
除非不在$HOME及其子目录中

二者只能择其一。
你的要求用${...##...}形式不行。

OK!
我放弃!