我希望看到设置$PS1
时使用的转义特殊字符的输出。例如,在PS1中放置\u
将输出当前用户的用户名。
所以实质上:
omar @ ~ > echo -e '\u'
期望值:
omar
实际输出:
\u
答案 0 :(得分:1)
您可以使用@P
运算符进行参数扩展,如下所示:
prompt="\u"; echo ${prompt@P}
从Bash 4.4开始,您可以在Parameter expansion中使用@P
运算符:
${parameter@operator}
扩展是参数值的转换或有关参数本身的信息,具体取决于运算符的值。每个运算符都是一个字母:
@P
扩展名是一个字符串,它是将参数值扩展为提示的结果
以下是一些常见的special characters available to the PS1 command:
下面列出了提示变量PS0,PS1,PS2和PS4中可能出现的特殊字符
\a
响铃字符
\d
日期,以“工作日月份日期”格式(例如,“ 5月26日星期二”)
\e
转义符
\H
主机名
\u
当前用户的用户名
\w
当前工作目录
进一步阅读:
答案 1 :(得分:0)
这是一种可用于显示转义字符值的方法。
下面定义的函数会将您当前的PS1更改为给定的字符串。输入命令后,您可以立即看到输出。
将当前的PS1存储在变量
中 > save=$PS1
创建重置功能
> function reset { PS1=$save; }
创建打印功能
> function omar { PS1="\\$1 "; }
按如下方式使用
> omar u
:您的命令提示符将是您的用户名
omar >
> omar @
:您的命令提示符将是12小时上午/下午格式的当前时间
11:19 PM >
> omar h
:您的命令提示符将是第一个`。'
omar-Laptop >
等...
您可以通过拨打PS1
或重新启动终端来重置reset