Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1744914
  • 博文数量: 1493
  • 博客积分: 38
  • 博客等级: 民兵
  • 技术积分: 5834
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-19 17:28
文章分类

全部博文(1493)

文章存档

2016年(11)

2015年(38)

2014年(137)

2013年(253)

2012年(1054)

2011年(1)

分类:

2012-11-29 13:46:13

原文地址:shell中case的用法 作者:技术宅

case语句 :它能够把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码。
使用格式:
case 匹配母板 in
模板1 [ | 模板2 ] … ) 语句组 ;;
模板3 [ | 模板4 ] … ) 语句组 ;;
esac
case语句的匹配是从上往下地匹配顺序。因此,case语句编写的原则是从上往下,模板从特殊到普通。在C语言里,case语句中有default模板,而

在shell程序设计中,可能将模板写成*,就可以完成相同的功能。

例程:

#!/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

阅读(481) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~