码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈case语句与select语句

时间:2016-08-22 00:37:48      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:case   select。linux   

case语句与select语句


case语句:

多分支if语句:

if CONDITION1;then

分支1

elif CONDITION2;then

分支2

...

else CONDITION;then

分支n

fi


例如下面这段代码,我们可以使用while语句内嵌套if语句实现,

#!/bin/bash

cat << EOF

cpu) display cpu information

mem) display memory information

disk) display disks information

quit) quit

==================================

EOF


read -p "Entwer your option: " option


while [ "$option" != "cpu" -a "$option" != "mem" -a "$option" != "disk" -a "$option" != "quit" ]; do

echo "cpu,mem,disk,quit"

read -p "Entwer your option: " option

done


if [ "$option" == "cpu" ];then

lscpu

elif [ "$option" == "mem" ];then

free -m

elif [ "$option" == "disk" ];then

fdisk -l /dev/[hs]d[a-z]

else

echo "quit"

exit 0

fi


不难看出,语句有些陈杂,下面我们看一下case语句的语法格式,


case语句的语法格式:


case $VARAIBLE in

PAT1)

分支1

;;

PAT2)

分支2

;;

...

*)

分支n

;;

esac

利用case我们将上面的代码修改一下,结果如下:

#!/bin/bash

cat << EOF

cpu) display cpu information

mem) display memory information

disk) display disks information

quit) quit

==================================

EOF


read -p "Entwer your option: " option


while [ "$option" != "cpu" -a "$option" != "mem" -a "$option" != "disk" -a "$option" != "quit" ]; do

echo "cpu,mem,disk,quit"

read -p "Entwer your option: " option

done


case $option in

cpu)

lscpu ;;

men)

free -m ;;

disk)

fdisk -l /dev/[hs]d[a-z] ;;

*)

echo "quit"

exit 0 ;;

esac

是不是比if语句更直观,更有条理性

最后我们在说一下与case类似的select语句


select 循环与菜单

select variable in list

do

循环体命令

done


select循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3提示符,等待用户输入

用户输入菜单列表中的某个数字,执行相应的命令

用户输入被保存在内置变量REPLY中

select是个无限循环,因此要记住用break命令退出循环,或用exit命令终止脚本。也可以按ctrl+c退出循环

select 经常和case联合使用

与for循环类似,可以省略 in list ,此时使用位置参量


本文出自 “11798474” 博客,请务必保留此出处http://11808474.blog.51cto.com/11798474/1840882

浅谈case语句与select语句

标签:case   select。linux   

原文地址:http://11808474.blog.51cto.com/11798474/1840882

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!