shell 流程控制

2021-08-30 02:09:42 字數 3425 閱讀 9222

sh流程控制不可為空

if else

if 語法格式:

if condition

then

command1

command2

...fi

寫成一行:

if  [ $(ps -ef | grep -c  "ssh" ) -gt 1 ]; then echo "true"; fi
if-else

格式:

if condition

then

command1

command2

..else

coamnd

fi

if else-if else

格式:

if condition1

then

command1

elif condition2

then

command2

else

commandn

fi

例:判斷兩個變數是否相等:

a=10

b=20

if [ $a == $b ]

then

echo "a等於b"

elif [ $a -gt $b ]

then

echo "a 大於b"

else

echo "a小於b"

fi

for 迴圈

格式:

for var in item1 item2 ..

do command1

command2

.....

done

寫成一行:

for var in item1 item2 ....; do command1; do command2...  done;

例:for loop in 1 2 3 4 5

do echo "the value is : $loop"

done

結果:the value is: 1

the value is: 2

the value is: 3

the value is: 4

the value is: 5

while語句

格式:

while condition

do

command

done

例:

int=1

while (( $int<=5 ))

do echo $int

let "int++"

done

輸出:123

45

注:bash let命令用於執行乙個或多個表示式,變數計算不需要加$.

while迴圈可用於讀取鍵盤資訊。下面例子中,輸入資訊被設定為變數film。

echo  『按下退出』

echo -n 『輸入你喜歡的**:'

while read film

do echo "$film 是乙個好**"

done

結果:

按下退出

輸入你喜歡的**:goole

goole是乙個好**

until迴圈

until迴圈執行一系列命令直到條件為true.

語法:

until condition

do command

done

例:

a=o

until [ ! $a -lt 6 ]

do echo $a

a="expr $a + 1"

done

輸出:012

345

case

shell case語句為多選擇語句。可以用case匹配乙個值和乙個模式,如果匹配成功,執行相匹配的命令。

格式:

case 值 in

模式1)

command1

command2

....

;;模式2)

command1

command2

...;;

esac

例:

echo '輸出1到3之間的數字:'

echo '輸出的數字為:'

read $anum

case $anum in

1) echo "你選擇了1"

;; 2)

echo "你選擇了2"

;;3)echo "你選擇了3"

;; *)echo "沒有輸入1-3之間的數字"

;;esac

輸出:輸出1到3之間的數字:

輸入的數字:

3你選擇了 3

注:如果case無匹配模式,使用 * 捕捉該值,再執行後面的命令。

跳出迴圈

break 和 continue

break命令:允許跳出所有迴圈(即終止執行後面的所有迴圈)。

continue:跳出當前迴圈。

while例項

while:

do echo -n "輸入1到5 之間的數字:"

read anum

case $anum in

1|2|3|4|5) echo "你輸入的數字為$anum!"

;;*) echo "你輸入的數字不在指定區間!"

break

;;easc

done

輸出:

輸入1到5之間的數字:7

你輸入的數字不在指定區間

continue例項

while:

do echo -n "輸入1到5 之間的數字:"

read anum

case $anum in

1|2|3|4|5) echo "你輸入的數字為$anum!"

;;*) echo "你輸入的數字不在指定區間!"

continue

echo "遊戲結束"

;;easc

done

當輸入大於5的數字時,該迴圈不會結束

Shell流程控制

case迴圈 if condition condition then statements if true 1 elif condition condition then statements if true 2 else statements if all else fails fi注 方括號中的...

Shell 流程控制

shell的流程控制不可為空,如果else分支沒有語句執行,就不要寫這個else。if 語句語法格式 if condition then command1 command2 commandn fi寫成一行 適用於終端命令提示符 if ps ef grep c ssh gt 1 then echo t...

Shell流程控制

shell 流程控制 if else if語法格式 if condition then command1 command2 fi 末尾的fi就是if倒過來拼寫 if else語法 if condition then command1 command2 else command1 fi if else...