shell中的case語句:
可以把變量的內(nèi)容與多個(gè)模板進(jìn)行匹配,再根據(jù)成功匹配的模板去決定應(yīng)該執(zhí)行哪部分代碼。
使用格式:
case 匹配母板 in
模板1 [ | 模板2 ] … ) 語句組 ;;
模板3 [ | 模板4 ] … ) 語句組 ;;
esac
case語句的匹配是從上往下地匹配順序。因此,case語句編寫的原則是從上往下,模板從特殊到普通。在C語言里,case語句中有default模板,而在shell程序設(shè)計(jì)中,可能將模板寫成*,就可以完成相同的功能。
例1:
復(fù)制代碼 代碼如下:
#!/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:
復(fù)制代碼 代碼如下:
#!/bin/bash
FRUIT=$1 #注意沒有空格
if [ -z "$1" ] #中括號(hào)跟 -z 要有空格
then
echo "沒有在第一個(gè)參數(shù)輸入水果"
else
case "$FRUIT" in
apple|APPLE) echo "THE FRUIT is apple";;
banana|BANANA) echo "THE FRULT is banana";;
#可以使用*)來表示默認(rèn)選項(xiàng),注意最后要用兩個(gè)分號(hào)來結(jié)尾
*) echo "輸入的是不是我要的水果啊?";;
esac
fi
#--- $1既是外部傳參的值,如:運(yùn)行該腳本的時(shí)候:./test.sh apple
#---此處apple既是$1
附另外一個(gè)示例:
復(fù)制代碼 代碼如下:
#!/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
您可能感興趣的文章:- Shell腳本中讓進(jìn)程休眠的方法(sleep用法)
- linux shell命令行選項(xiàng)與參數(shù)用法詳解
- Shell函數(shù)的7種用法介紹
- Shell腳本數(shù)組用法小結(jié)
- Shell中eval的用法示例
- Bash Shell中Shift用法分享
- ShellExecute函數(shù)用法的實(shí)例代碼
- shell中冒號(hào)的特殊用法分享
- linux shell命令行參數(shù)用法詳解
- Shell常見用法小記