shell中的case语句:
可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码。
使用格式:
case 匹配母板 in
模板1 [ | 模板2 ] … ) 语句组 ;;
模板3 [ | 模板4 ] … ) 语句组 ;;
esac
case语句的匹配是从上往下地匹配顺序。因此,case语句编写的原则是从上往下,模板从特殊到普通。在c语言里,case语句中有default模板,而在shell程序设计中,可能将模板写成*,就可以完成相同的功能。
例1:
#!/bin/sh
echo "please input \"yes\" or \"no\""
read var
case "$var" in
[yy][ee][ss] ) echo "your input is yes" ;;
[nn][oo] ) echo "your input is no" ;;
* ) echo "input error!" ;;
esac
exit 0
例2:
#!/bin/bash
fruit=$1 #注意没有空格
if [ -z "$1" ] #中括号跟 -z 要有空格
then
echo "没有在第一个参数输入水果"
else
case "$fruit" in
apple|apple) echo "the fruit is apple";;
banana|banana) echo "the frult is banana";;
#可以使用*)来表示默认选项,注意最后要用两个分号来结尾
*) echo "输入的是不是我要的水果啊?";;
esac
fi
#--- $1既是外部传参的值,如:运行该脚本的时候:./test.sh apple
#---此处apple既是$1
附另外一个示例:
#!/bin/bash
hosts=" nss.sh cs.sh ss.sh ds_handler2 tomcat blog httpd "
for myhost in $hosts
do
count=(`ps aux |grep -v grep |grep $myhost |wc -l`)
echo $myhost
echo $count
done
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
UOS arm换源
清华源mv/etc/apt/sources.list /etc/apt/sources.list.bak备份原始...
[阅读全文]
-
-
IT基础与云计算
软路由器(IPtable)iptable是Linux上常用的防火墙软件。负载均衡负载均衡是网络基础构架的关键组件...
[阅读全文]
-
-
嵌入式行业职位分析
嵌入式开发涵盖硬件软件,开发链条很长,要根据自己的实际情况选择适应的职位。嵌入式的职位大概有:1、硬件工程师:负...
[阅读全文]
-
-
-
网友评论