Linux:shell编程case语句

case语句

case语句允许进行多重条件选择。其一般语法形式是:
case 字符串 in

模式字符串1) 命令

命令;;

模式字符串2) 命令
……
命令;;

模式字符串n) 命令

命令;;

esac

其执行过程是,用“字符串”的值依次与各模式字符串进行比较,若发现同某-个匹配,则执行该模式字符串之后的各命令,直至遇到“;;”为止:若没有任何模式字符串与该字符串的值相符合,则不执行任何命令。例如:

echo “Please chose either1, 2 or 3”

echo“[1] print a file"

echo “[2] delete a file”

echo “[3] quit”

read response

case $response in

  1. 1pmyfile;;

  2. rm myfile;;

  3. echo “Good bye”;;

esac

在使用case语句时应注意:一条成多条俞令, 其最后一条命令必须以“的结事,
①每个模式字符串后面可有一

检查命令行的第一个参数是否为内_b或-s。若是-b,则计算由第二个参数指定的文件中以b开头的行数。若是-8.则计算由第二个参数指定的文件中以⁻s开头的行数,若第一个参数不是⁻b也不是⁻s,则显示条选择有错的信息。
case $1 in

-b) count=’ grep ^b $2 | wc -1’

echo “The number of lines in $2 that start with b is $count.”;

-s) count=‘igrep ^s $2 | wc_ 1’

echo"The number of lines in $2 that start with s is $count.”;;

*) echo “That option is not recognized”;;

esac

②模式字符串中可以使用通配符,例如:

case $1 in

-u) echo “Searching /usr/ lognamei for : $2”

find /usr/ logname^ -name $2 -print ;

-[cs]) echo “Searching for command : $2”

find /bin/usr/bin/etc -name $2 print ;;

*) echo “invalid first argument.”;;

esac

③如果一个模式字符串中包含多个模式,那么各模式之间应以“I”隔开,表示各模式是“或”的关系,即只要给定字符串与其中一个模式相配,就会执行其后的命令表。例如:

case$choice in

time|date ) echo"The time is‘ date^ .";;

dir|path ) echo “Current directory is、 pwd^.”;;

*) echo"bad argument.";;

esac

④各模式字符串应是唯一 的,不应重复出现,并且要合理安排它们的出现顺序。例如,不应将作为头一个模式字符串。 因为可以与任何字符串匹配,它若第一个出现,就不会再检查其他模式了。

⑤case语句以关键字case开头,以关键字esac (case 倒过来写)结束。

⑥case的退出(返回)值是整个结构中最后执行的那个命令的退出值。若没有执任何命令,则退出值为0。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值