欢迎大家来到IT世界,在知识的湖畔探索吧!
case语句
case语句允许进行多重条件选择。其一般语法形式是:
case 字符串 in
模式字符串1) 命令
…
命令;;
模式字符串2) 命令
…
命令;;
…
模式字符串n) 命令
…
命令;;
esac
在使用case语句时应注意:
(1)每个模式字符串后面可有一条或多条命令,其最后一条命令必须以两个分号(即;;)结束。
(2)模式字符串中可以使用通配符。
(3) 如果一个模式字符串中包含多个模式,那么各模式之间应以竖线(|)隔开,表示各模式是“或”的关系,即只要给定字符串与其中一个模式相配,就会执行其后的命令表。
(4)各模式字符串应是惟一的,不应重复出现。并且要合理安排它们的出现顺序。例如,不应将“*”作为头一个模式字符串,因为“*”可以与任何字符串匹配,它若第一个出现,就不会再检查其它模式了。
(5)case语句以关键字case开头,以关键字esac(是case倒过来写!)结束。
(6)case的退出(返回)值是整个结构中最后执行的那个命令的退出值。若没有执行任何命令,则退出值为零。
Case –举例1–1.sh———————————————————-
#!/bin/sh echo "enter choice: \c " read choice case "$choice" in 1) echo "11111";; 2|22) echo "22222";; yes|y|Yes|YES)echo "yes|y|Yes|YES";; [Nn]*) echo "[Nn]*";; *) echo "sorry" exit 1;; esac exit 0
欢迎大家来到IT世界,在知识的湖畔探索吧!
结果
欢迎大家来到IT世界,在知识的湖畔探索吧![hadoop@localhost dzztest]$ ./a1.sh enter choice: \c 1 11111 [hadoop@localhost d3]$ sh a.sh enter choice: \c 22 22222 [hadoop@localhost d3]$ sh a.sh enter choice: \c 2 22222 [hadoop@localhost dzztest]$ ./a1.sh enter choice: \c * sorry [hadoop@localhost d3]$ sh a.sh enter choice: \c yes yes|y|Yes|YES [hadoop@localhost d3]$ sh a.sh enter choice: \c y yes|y|Yes|YES [hadoop@localhost d3]$ sh a.sh enter choice: \c n [Nn]* [hadoop@localhost d3]$ sh a.sh enter choice: \c N [Nn]* [hadoop@localhost d3]$ sh a.sh enter choice: \c n45 [Nn]*
—Case 举例2–b.sh
#!/bin/sh user="who am i ?" /*给变量user赋值*/ echo $user read user /*读入输入的user的值,且取值后面的”in” 必须存在*/ case $user in /*$ueser为值*/ root)echo "you can do everything"/*root为输入的模式一*/ ;; /*所有命令开始执行直至;;*/ abc)echo "you just do something" ;; *)echo "sorry,i dont know you"/*其中如果无任何匹配的,用“*”号表示捕获*/ ;; esac
结果
欢迎大家来到IT世界,在知识的湖畔探索吧![hadoop@localhost d3]$ sh b.sh who am i ? root you can do everything [hadoop@localhost d3]$ sh b.sh who am i ? io sorry,i dont know you [hadoop@localhost d3]$ sh b.sh who am i ? abc you just do something
2022-9-14
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/102640.html