导出PS1无法正常工作

时间:2018-01-09 20:10:24

标签: shell .profile

我在我的用户.profile文件中设置以下内容以显示PWD中的最后3个目录,但它仍然只显示主目录。不知道这有什么问题。有人可以帮忙吗?

me='$(whoami)'
function PWD {
pwd | rev| awk -F / '{print $1,$2,$3}'|rev|sed 's/ /\//g'
}
export PS1="$(whoami)@$(hostname -s)$PWD$ "

它会一直显示用户的主目录。

2 个答案:

答案 0 :(得分:0)

根据Bash Prompt How To,强调我的:

  

您也可以直接在提示中使用常规Linux命令的输出....

[21:58:33][giles@nikola:~]$ PS1="[\$(date +%H%M)][\u@\h:\w]\$ "
[2159][giles@nikola:~]$ ls
bin   mail
[2200][giles@nikola:~]$
  

在命令替换的美元符号之前注意反斜杠是很重要的。没有它,外部命令只执行一次:当PS1字符串被读入环境时。对于此提示,这意味着无论使用多长时间,它都会显示相同的时间。反斜杠保护$()的内容不受立即shell解释的影响,因此每次生成提示时都会调用date。

答案 1 :(得分:0)

在此链接-http://ezprompt.net/中,您可以轻松地自定义PS1变量。然后运行生成的命令,即“ export PS1 = ...”