![如何避免 Bash 提示符中的波浪符号 ~ ?](https://linux22.com/image/1261906/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%20Bash%20%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%AD%E7%9A%84%E6%B3%A2%E6%B5%AA%E7%AC%A6%E5%8F%B7%20~%20%EF%BC%9F.png)
我想删除 PS1 变量中显示的波浪号。
我当前的 PS1 字符串:
PS1="\h:\w\n$"
提示如下:
lnx-hladky:/tmp/plugtmp
$
我不喜欢 $HOME 目录显示为波浪符号。可以避免这种情况吗?
它会导致问题,例如:
lnx-hladky:~/DOC
$
文档说:
\w : the current working directory, with $HOME abbreviated with a tilde
\W: the basename of the current working directory, with $HOME abbreviated with a tilde
有没有可能避免 $HOME 被用波浪号缩写?
我找到了一种解决方法,但我觉得它过于复杂:
PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$
有人能提出更好的解决方案吗?我觉得运行这么多命令只是为了得到提示不太好。(date、whoami、hostname、pwd)。
答案1
bash 在提示中运行扩展;只需确保将其转义。
PS1='\h:$(pwd)\n$'
答案2
您不需要运行示例中显示的那么多命令。bash
为您提到的大多数内容提供快捷方式。
你的例子:
PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$
可以重写为:
PS1='\e[4;35m\t\e[24m\u@\h:\w\e[m\n'
其中\t
显示时间(24 小时格式),\u
显示当前用户名,'\h' 显示主机名 - 手册bash
页讨论这些和其他可用的逃生方式感谢您的提示。
即使您将扩展~
为完整路径,如果您不知道哪个用户正在运行该命令并且您定期切换用户,则可能会产生文件权限或可执行权限问题。
答案3
我在 .bash_profile 文件中使用以下设置
$ export PS1='\e[1;34m\D{%T %d.%m.%Y} \[\033[00;39m\]\u\[\033[00;32m\]@$IP:\[\033[00;33m\]$(pwd)/\n\\$\[\033[00m\] '
21:40:08 14.12.2017 [email protected]:/home/vmware/Downloads/