Content #
创建文本菜单的一半工夫花在了建立菜单布局和获取用户输入上。bash shell提供了一款易于上手的小工具,能够帮助我们自动完成这些工作。
select命令只需要一个命令就可以创建出菜单,然后获取输入并自动处理。 select命令的格式如下:
select variable in list
do
commands
done
list参数是由空格分隔的菜单项列表,该列表构成了整个菜单。select命令会将每个列表项显示成一个带编号的菜单项,然后显示一个由PS3环境变量定义的特殊提示符,指示用户做出选择。
下面是一个select命令的简单示例:
$ cat smenu1
#!/bin/bash
# using select in the menu
function diskspace {
clear
df -k
}
function whoseon {
clear
who
}
function memusage {
clear
cat /proc/meminfo
}
PS3="Enter option: "
select option in "Display disk space" "Display logged on users" ~CA
"Display memory usage" "Exit program"
do
case $option in
"Exit program")
break ;;
"Display disk space")
diskspace ;;
"Display logged on users")
whoseon ;;
"Display memory usage")
memusage ;;
*)
clear
echo "Sorry, wrong selection";;
esac
done
clear
$
select语句中的所有内容必须作为一行出现。这从续行符就可以看出。运行该脚本会自动生成如下菜单: $ ./smenu1
- Display disk space 3) Display memory usage
- Display logged on users 4) Exit program
Enter option: 记住,在使用select命令时,存储在指定变量中的值是整个字符串,而不是跟菜单选项相关联的数字。字符串才是要在case语句中进行比较的内容。
From #
Linux命令行与shell脚本编程大全