Shell流程控制

2021-10-05 05:44:30 字數 2489 閱讀 3468

if

[ 條件判斷式 ]

;then

程式fi

或者

if

[ 條件判斷式 ]

then

程式elif [ 條件判斷式 ]

then

程式fi

應用例項

請編寫乙個shell程式,如果輸入的引數,大於等於60,則輸出"及格了",如果小於60,則輸出「不及格」。

if[$1

-ge 60 ]

then

echo

"及格了"

elif [

$1-lt 60 ]

then

echo

"不及格"

case $變數名 in

"值1"

)如果變數的值等於1,則執行程式1;;

"值2"

)如果變數的值等於2,則執行程式2;;

*)如果變數的值都不是以上的值,則執行此程式;;

esac

注意:case的具體條件之前有沒有縮排都可以

當命令列引數是1時,輸出「周一」,是2時,就輸出「周二」,其他情況輸出「other」

#!/bin/bash

case $1 in

"1")echo

"星期一";;

"2")

echo

"星期二";;

*)echo

"others";;

esac

for 變數 in 值1 值2 值3 ...

do 程式

done

應用例項

列印命令列輸入的引數 ,【這裡可以看出$*$@的區別】

#!/bin/bash

# 案例:列印命令列輸入的引數

# 使用 $*

for i in "$*"

doecho

"the number is $i"

done

echo

"******************************"

# 使用 $@

但是去掉引數的雙引號。並沒有發現$*$@的區別

#!/bin/bash

# 案例:列印命令列輸入的引數

# 使用 $*

for i in $*

doecho

"the number is $i"

done

echo

"******************************"

# 使用 $@

for j in $@

doecho

"the number is $j"

done

for

((初始值;迴圈控制條件;變數變化))do

程式done

應用案例

從1加到100的值輸出顯示

#!/bin/bash

# 列印1到100的和

sum=0

for(

(i=0;i<=100;i++))

do sum=$[

$sum+$i

]done

echo

"和為$sum"

while

[ 條件判斷式 ]

do 程式

done

應用例項:

從命令列輸入乙個數n,統計從1+…+n的值是多少?

#!/bin/bash

# 統計1+。。。+n的值是多少

sum=0

i=1while[$i

-le$1]do

sum=$[

$sum+$i

] i=$[

$i+1]

done

echo

"和為$sum"

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...