4. select 命令
select 命令提供选择性输入的命令,他提供一种交互式菜单和并循环让用户选择输入功能,它允许用户从一组选项中进行选择其中的一个,并将选择对应的值交给变量,并做后续的工作。
作用
- 创建一个简单的文本菜单界面。
- 自动显示带编号的选项列表。
- 等待用户输入选择。
- 将用户选择的值赋给变量。
官方语法
select NAME [in WORDS ... ;] do COMMANDS; done
上述 中括号([ ])内部的数据是可选的。WORDS 后跟 ... 说明前面的 字符串 WORDS 可以有零个、一个或多个。 WORDS ... 后面的分号 ; 表示 字符串列表的结束,如果后面 do 写在新的一行内,则 分号; 可以省略。
将上述一行整理成多行,并用中文表达需要填充的部分,即成为如下语法:
语法格式:
select 变量名 [in 字符串1 字符串2 ... ; ] do
命令块;
done
或
select 变量名 [in 字符串1 字符串2 ...]
do
命令块;
done
语法说明:
select、in、do、done是关键字。- in 后面的字符串是选项,用空白字符分开。
- select 命令默认循环输入信息,使用
break命令可以终止当前 select 命令的执行。 - select 命令的输入提示语用
PS3变量值,默认是#?。
示例:
写一个 Shell 程序 test_select.sh ,实现如下的四个功能:
- 创建
select.txt文件 - 删除
select.txt文件 - 查看当前的所有文件
- 退出此功能
写入程序如下:
#!/bin/bash
PS3="请输入你的选项项: " # 设置选择提示符
select option in "创建文件" "删除文件" "列出所有文件" "退出"
do
case $option in
"创建文件")
touch select.txt && echo "成功创建文件 select.txt"
;;
"删除文件")
rm select.txt && echo "成功删除文件 select.txt"
;;
"列出所有文件")
ls
;;
"退出")
echo "退出..."
break
;;
*)
echo "不可用的选项"
;;
esac
done
运行效果如下:
weimingze@mzstudio:~$ bash test_select.sh
1) 创建文件
2) 删除文件
3) 列出所有文件
4) 退出
请输入你的选项项: 1
成功创建文件 select.txt
请输入你的选项项: 2
成功删除文件 select.txt
请输入你的选项项: 2
rm: cannot remove 'select.txt': No such file or directory
请输入你的选项项: 1
成功创建文件 select.txt
请输入你的选项项: 3
select.txt test_select.sh 下载 公共 图片 文档 桌面 模板 视频 音乐
请输入你的选项项: 4
退出...
weimingze@mzstudio:~$
练习:
- 写一个 Shell 脚本程序,实现如下几个功能:
- 显示当前登陆用户的名称
- 显示当前的工作路径。
- 显示当前主机的全部 IP 地址。