shell中case的用法學習筆記_linux shell

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.