shell指令碼中case的簡單應用

2021-10-08 04:42:15 字數 1687 閱讀 3995

vim case.sh

#! /bin/bash

# 提示輸出

echo

"1. 猜數字"

echo

"2. 檢測網域名稱是否可以訪問"

echo

"3. 檢測ip是否可以ping通"

#read -p "請輸入您的選擇: " num

# 加入迴圈

while

true

do# 提示輸入

read -p "請輸入您的選擇: " num

# 加入條件

case

$num

in1)

# 隨機生成乙個100以內的數字

n1=$(

expr $random % 100)

echo

$n1i=0 # 定義乙個變數

while

true

# 進入迴圈

doread -p "請輸入乙個數字:" n2

let i++ # 累加

# 判斷輸入的數字是否和隨機數相等if[

$n2 -eq $n1];

then

echo

"真聰明,猜對了!"

echo

"您共猜了$i次"

break

elif

[$n2 -gt $n1];

then

echo

"好遺憾,猜大了!"

elif

[$n2 -lt $n1];

then

echo

"好遺憾,猜小了!"

else

echo

"請正確輸入數字!"

fidone;;

2)# 定義乙個陣列包含網域名稱

$# 遍歷輸出網域名稱

do# 輸出網域名稱訪問的狀態碼

code=

`curl -i -o /dev/null -s -w % $i`

echo

$code

# 判斷狀態碼是否是200if[

$code -eq 200 ]

;then

echo

"$a is good!"

else

echo

"$a is bad!"

fidone;;

3)# 定義乙個陣列包含ip位址

ip=(

192.168.30.171

127.0.0.1

172.10.1.1

172.10.30.2

)for i in

$# 遍歷ip陣列

do# 判斷ip是否是192或127開頭if[

[$i=~ '192']]

||[[$i

=~ '127']]

;then

echo

"$i is ok!"

else

echo

"$i is not ok!"

# 將不通的ip位址doos掉

iptables -i input -ptcp -s $i -j drop

fidone;;

esac

done

Shell指令碼 case語句

case條件語句相當於多分支的if elif else條件語句,但是看起來更規範,常用語服務啟動等指令碼。在case語句中,程式會將case獲取的變數值與表示式部分的值1 值2等進行比較,如果變數值與某個值相匹配,就會執行值後面的相對應的指令,直到執行到雙分號為止,然後跳出case語句主體,執行其他...

Shell指令碼之 case

case esac 與其他語言中的 switch case 語句類似,是一種多分枝選擇結構。case語句的語法 case 值 in 模式1 command1 command2 command3 模式2 command1 command2 command3 command1 command2 comm...

Shell指令碼case語句

case語句格式 case 變數 in pat1 執行語句 pat2 執行語句 預設執行語句 esac 使用示例 編寫乙個shell指令碼,通過提示使用者輸入資訊,輸出cpu,mem,disk的資訊 bin bash 顯示各種資訊 sky whr cat 選單 cpu 顯示cpu資訊 mem 顯示記...