我对 AIX 和 ksh 都很陌生,但我目前在工作中有一些停机时间,并且正在尝试将我的提示配置为彩色并显示我当前的位置。
目前,我在登录时只获得了一次正确的路径,之后它继续显示我的用户目录。颜色工作正常。日志名和主机名是正确的。
PS1="$(echo "\033[35m`logname`\033[34m@\033[35m`hostname` \033[36m`pwd`\033[1;35m\n\>\033[0m") "
无法显示屏幕截图,但示例输出在任何目录中都会如下所示:
userid@hostname /home/look/a/subfolder
>
我尝试了一堆不同的版本,但要么无法显示任何内容,要么所有特殊字符都以 .profile 的形式出现。
任何想法我做错了什么?
编辑:感谢 Stéphane,ESC+CTRL+V 有效,它是 ksh88。AIX 7.1
尝试:
也就是说,在 shell 会话期间不会改变的东西,在分配时扩展它们(除非它们可能包含
$
,`
,\
,!
字符,但在$PWD
您想要存储文字时随时更改$PWD
它$PS1
以便$PWD
在提示扩展时扩展¹¹ 请注意,如果这些扩展包含
!
字符,它们将被扩展为当前的历史编号,所以严格来说应该是${PWD//!/!!}
(${param//pattern/replacement}
虽然是 ksh93 运算符)我一直用