Bash Shell 中的 select 选择语句 以及 PS3 :

文章目录

      • 语法结构:
      • 注意点:
      • 例子:


 

        此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:


语法结构:

select  varname in (表达式)
do
cmd
done

 

注意点:

1、 select 会自动为 表达式里的 参数添加序号:

eg: select i in aaa bbb ccc ddd
输出为: 1) aaa 2) bbb 3) ccc 4) ddd

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

2、关于 select 选择语句中,PS3 的作用:

没加 PS3 时,运行一个 select脚本:
root@zhengzelin:~# ./select.sh 
1) aaa
2) bbb
3) ccc
4) ddd
5) exit
#?                             # 这个是提示符,提示你输入你选择的编号

当你加上 PS3 的时候:
#在脚本内添加内容: PS3="请输入你选择的编号:"  
root@zhengzelin:~# ./select.sh 
1) aaa
2) bbb
3) ccc
4) ddd
5) exit
请输入你选择的编号:

PS3 后面的内容代替了默认的提示符!

"PS3 —— Shell脚本中使用select时的提示符"

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

3、记住! select 是一个无限循环的选择语句,  case 却不是,case 会根据你选中的编号 执行对应的语句,然后退出!
而 select 执行完对应编号的语句后,又开始循环让你选择 编号!

所以在你使用 select 语句的时候,需要使用 breakexit 或 Ctrl+C 组合键 来退出无限循环!

 

例子:

结合了  select 、 PS3 、if..elif..fi 、break、continue ...


root@zhengzelin:~# vim select.sh 
#!/bin/bash
#
#********************************************************
#Author:                     zhengzelin
#Date:                       2020-04-03
#FileName                    while1.sh
#QQ:                         xxxxxxxx
#********************************************************
PS3="请输入你选择的编号:"
select i in aaa bbb ccc ddd exit
do
if [[ $i == exit ]]
then
echo "正在退出.."
sleep 1
break
fi
echo "你选择的是 $i"
done


root@zhengzelin:~# ./select.sh 
1) aaa
2) bbb
3) ccc
4) ddd
5) exit
请输入你选择的编号:3
你选择的是 ccc
请输入你选择的编号:5
正在退出..

你可能感兴趣的:(shell,PS3,select,Shell)