这篇文章介绍一下Bash中的环境变量PS2。
PS2 是什么
PS1 是Prompt String 2的缩写,它是Linux/Unix下的一个用于控制提示信息的环境变量,PS2是交互式的shell中一条命令多行连接时的显示信息。
PS2使用示例1
在本文示例的Bash环境中,PS2环境变量设定值如下所示:
liumiaocn:~ liumiao$ echo $SHELL
/bin/bash
liumiaocn:~ liumiao$ echo $PS2
>
liumiaocn:~ liumiao$
可以看到PS2环境变量的值缺省为>,我们通过一条命令来显示hello liumiao, Greetings 的信息,我们只需要执行如下echo命令即可。
liumiaocn:~ liumiao$ echo hello liumiao, Greetings
hello liumiao, Greetings
liumiaocn:~ liumiao$
而我们希望把这一行命令分成三行来写,通过\来进行连接,执行的时候可能就会变成这样:
liumiaocn:~ liumiao$ echo hello \
> liumiao, \
> Greetings
hello liumiao, Greetings
liumiaocn:~ liumiao$
可以看到每行连接之后都会出现>的提示信息,而这就是PS2设定的内容在起作用的缘故。
PS2使用示例2
为了清晰地确认PS2的作用,这里我们修改PS2的取值内容,将>修改为"next line: "
liumiaocn:~ liumiao$ echo $PS2
>
liumiaocn:~ liumiao$ PS2="next line:"
liumiaocn:~ liumiao$ echo $PS2
next line:
liumiaocn:~ liumiao$
同样把这一行命令分成三行来写,通过\来进行连接,执行的时候可能就会变成这样:
liumiaocn:~ liumiao$ echo hello \
next line:liumiao, \
next line:Greetings
hello liumiao, Greetings
liumiaocn:~ liumiao$
PS2使用示例3
无论是示例1还是示例2,拷贝时都需要手动删除一些内容,所以这次使用时干脆设定PS2为空
liumiaocn:~ liumiao$ echo $PS2
next line:
liumiaocn:~ liumiao$ unset PS2
liumiaocn:~ liumiao$
同样把这一行命令分成三行来写,通过\来进行连接,执行的时候可能就会变成这样:
liumiaocn:~ liumiao$ echo $PS2
liumiaocn:~ liumiao$ echo hello \
liumiao, \
Greetings
hello liumiao, Greetings
liumiaocn:~ liumiao$