使用select命令创建菜单

使用select命令创建菜单

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

  1. Display disk space 3) Display memory usage
  2. Display logged on users 4) Exit program

Enter option: 记住,在使用select命令时,存储在指定变量中的值是整个字符串,而不是跟菜单选项相关联的数字。字符串才是要在case语句中进行比较的内容。

From #

Linux命令行与shell脚本编程大全