BASH脚本基础:环境变量PS3介绍

在这里插入图片描述
这篇文章介绍一下Bash中的环境变量PS3。

PS3 是什么

PS3 是Prompt String 3的缩写,它是Linux/Unix下的一个用于控制select命令创建的菜单提示信息的环境变量。

select使用介绍

关于select的使用介绍可以参看:

  • https://liumiaocn.blog.csdn.net/article/details/104112272

示例代码

本文使用如下示例代码对PS3的使用进行说明:

liumiaocn:~ liumiao$ cat test-ps3.sh 
#!/bin/sh

IFS_OLD=$IFS
IFS=/
MENU_ITEMS=("Start Kubernetes"/"Stop Kubernetes"/"Restart Kubernetes"/"Status Kubernetes")
echo "[PS3]: $PS3"
select MENU_ITEM in ${MENU_ITEMS[@]}
do
    echo "Menu Item Selected: $MENU_ITEM"
    break
done
IFS=$IFS_OLD
liumiaocn:~ liumiao$ 

代码说明:功能非常简单,模拟显示一下Kubernetes启动、停止、重启以及状态显示的菜单生成。

PS3未设定下的select菜单提示

PS3缺省没有设定时,select菜单等待用户输入的时候会提示#?,比如本文示例代码在PS3未设定时(缺省状态)的设定下执行结果如下所示

liumiaocn:~ liumiao$ sh test-ps3.sh 
[PS3]: 
1) Start Kubernetes    3) Restart Kubernetes
2) Stop Kubernetes     4) Status Kubernetes
#? 4
Menu Item Selected: Status Kubernetes
liumiaocn:~ liumiao$ 

设定PS3修改select菜单提示信息

通过修改PS3可以间接修改select菜单的提示信息,比如我们通过export修改此环境变量的值,然后执行确认结果如下:

liumiaocn:~ liumiao$ export PS3="Please input your choice: >"
liumiaocn:~ liumiao$ sh test-ps3.sh 
[PS3]: Please input your choice: >
1) Start Kubernetes    3) Restart Kubernetes
2) Stop Kubernetes     4) Status Kubernetes
Please input your choice: >3
Menu Item Selected: Restart Kubernetes
liumiaocn:~ liumiao$ 

可以看到PS3的内容替代了缺省的#? ,修改了默认显示的信息,这也是PS3环境变量引入的重要原因。

注意:本文示例代码中使用export环境变量的方式,是为了不修改示例代码进行PS3的使用说明,在实际的使用中直接修改之后使用即可发生变化。

你可能感兴趣的:(#,Shell脚本编程,Linux,Bash,PS3,环境变量,select)