shell脚本之判断 if,elif, case (四)
练习:判断当前Linux发行版是RedHat, Fedora, CentOS还是其它。
方法:取得/etc/issue文件第一行的第一个单词后进行比较;
bash如何与用户交互:bash内置命令, read
-p "prompt":提示信息
-t #: 超时秒数
例子:
#!/bin/bash
#
read -p "Do you agree [yes|no]?: " YesNo
case $YesNo in
y|Y|[Yy]es)
echo "Agreed, proceed." ;;
n|N|[nN]o)
echo "Disagreed, can't proceed." ;;
*)
echo "Invalid input." ;;
esac
例子:写一个脚本
1、显示如下菜单给用户:
m|M) show memory usages;
d|D) show disk usages;
q|Q) quit
2、如果用户选择了第一项,则显示内存使用信息;
如果选择了第二项,则显示磁盘挂载及使用相关信息;
如果是第三项,退出,并显示选择退出;
其它任何内容,均说明错误选项;
#!/bin/bash
cat << EOF
m|M) show memory usages;
d|D) show disk usages;
q|Q) quit
EOF
read -p "Your choice: " Choice
case $Choice in
m|M)
free -m ;;
d|D)
df -lh ;;
q|Q)
echo "Quit..."
exit 0
;;
*)
echo "Invalid input."
exit 5
;;
esac
blog comments powered by Disqus