[root@localhost advanced_shell_script]# cat test16.sh
#!/bin/bash
# simple script menu
function diskspace { #定义查看磁盘使用率函数
clear
df -k
}
function whoseon { #定义查看当前用户函数
clear
who
}
function memusage { #定义查看内存使用率函数
clear
cat /proc/meminfo
}
function menu { #定义展示菜单函数
clear
echo
echo -e "\t\t\tSys Admin Menu\n"
echo -e "\t1. Display disk space"
echo -e "\t2. Display logged on users"
echo -e "\t3. Display memory usage"
echo -e "\t0. Exit program\n\n"
echo -en "\t\tEnter option: "
read -n 1 option #定义用户输入,只能输入一个数字
}
while [ 1 ] #while 循环是整个脚本的入口,默认 while [1] 无限循环。
do
menu #执行菜单函数,界面会输出一个窗口,在 menu 函数中,最后一个read 为等待输入
case $option in #根据用户的输入,case 语句判断输入的数字,并且执行相应的函数
0)
break ;;
1)
diskspace ;;
2)
whoseon ;;
3)
memusage ;;
*) #其他错误输入都提示错误
clear
echo "Sorry, wrong selection";;
esac
echo -en "\n\n\t\t\tHit any key to continue" #提示信息
read -n 1 line #这个read 非常重要,表示在执行case 后等待输出然后重新进行循环,如果没有这个read 就不会进行等待,直接循环了。那么我们也就看不到需要获取的信息
done
clear
[root@localhost advanced_shell_script]#