0

我想查看设置时使用的转义特殊字符的输出$PS1。例如,放入\uPS1 会输出当前用户的用户名。

所以本质上:

omar @ ~ > echo -e '\u'

预计:

omar

实际输出:

\u
4

2 回答 2

1

您可以使用@P运算符进行参数扩展,如下所示:

prompt="\u"; echo ${prompt@P}

从 Bash 4.4 开始,您可以在参数扩展@P中使用运算符:

${parameter@operator}
扩展要么是参数值的转换,要么是有关参数本身的信息,具体取决于运算符的值。每个运算符都是一个字母:

@P扩展是一个字符串,它是扩展参数值的结果,就好像它是一个提示一样

以下是 PS1 命令可用的一些常见特殊字符:

下面列出了提示变量 PS0、PS1、PS2 和 PS4 中可以出现的特殊字符

\a钟形字符
\d日期,格式为“Weekday Month Date”(例如,“Tue May 26”)
\e转义字符
\H主机
\u名 当前用户
\w的用户名 当前工作目录

延伸阅读

于 2019-01-14T00:18:54.377 回答
0

这是一种可用于显示转义字符值的方法。

下面定义的函数会将您当前的 PS1 更改为给定的字符串。输入命令后,您可以立即看到输出。

  1. 将您当前的 PS1 存储在变量中

    > save=$PS1

  2. 创建重置函数

    > function reset { PS1=$save; }

  3. 创建打印功能

    > function omar { PS1="\\$1 "; }

  4. 如下使用它

    > omar u:您的命令提示符将是您的用户名

    omar >

    > omar @:您的命令提示符将是 12 小时 am/pm 格式的当前时间

    11:19 PM >

    > omar h:您的命令提示符将是主机名,直到第一个 `.'

    omar-Laptop >

    ETC...

  5. 您可以PS1通过调用reset或重新启动终端来重置您的

于 2013-02-01T05:18:22.100 回答