总看总忘,Linux Shell编程总是无法提高,那么就来个每日练习吧。
今天练习一下select命令,实现一个menu功能
OK,上代码。
#!/bin/bash PS3='Input option(1-4):' stack="Display Calculate Sort Quit" select choice in $stack;do if [ "$choice" = "Display" ];then read -p "Input what you want to display[name/path/shell/cal]" info if [ "$info" = "name" ];then echo "$USER" elif [ "$info" = "path" ];then echo "$HOME" elif [ "$info" = "shell" ];then echo "$SHELL" elif [ "$info" = "cal" ];then cal 2015 fi elif [ "$choice" = "Calculate" ];then echo "Calculate" elif [ "$choice" = "Sort" ];then echo "Sort" elif [ "$choice" = "Quit" ];then echo "Quit" fi done
运行结果:
要点分析:
1、PS3是干嘛的?全文并没有出现PS3的使用
在文章http://blog.csdn.net/misskissc/article/details/8144283中发现了答案。
PS3作为select语句的shell界面提示符,提示符为PS3的值(赋予的字符串),更换默认的提示符”#?”
测试一下,如果没有PS3这一句,会什么现象。
2、select的功能
(1)、自动用1,2,3,4列出菜单 (没有echo指令,自动显示菜单)
(2)、自动read输入选择 (没有 read指令,自动输入)
(3)、赋值给变量 (没有赋值指令,自动输入数字后,赋值字符串给变量)
3、if判断中注意空格
if [ "$choice" = "Display" ]
在[后面, = 左右两侧, ] 前面都是有空格的哦