Shell流程控制

2021-10-01 06:10:13 字數 2762 閱讀 6383

if

[ 條件判斷式 ]

;then

程式 fi

或者

if

[ 條件判斷式 ]

then

程式 fi

注:

[ 條件判斷式 ],中括號和條件判斷式之間必須有空格;

if後要有空格;

[mubai@localhost test]$ touch iftest.sh

[mubai@localhost test]$ vim iftest.sh

#!/bin/bashif[

$1 -eq "0"

]then

echo

"hello world"

elif

[$1 -eq "1"

]then

echo

"hello mubai"

fi[atguigu@hadoop101 datas]$ chmod 777 iftest.sh

[atguigu@hadoop101 datas]$ ./iftest.sh 1

hello mubai

case $變數名 in

"值1")

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

;;"值2")

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

;; …省略其他分支…

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

;; esac

注:

case行尾必須為單詞「in」,每乙個模式匹配必須以右括號「)」結束;

雙分號「;;」表示命令序列結束,相當於c中的break;

最後的「*)」表示預設模式,相當於c中的default;

[mubai@localhost test]$ touch casetest.sh

[mubai@localhost test]$ vim casetest.sh

#!/bin/bash

case

$1in

"1")

echo

"hello beijing";;

"2")

echo

"hello shanghai";;

*)echo

"hello hangzhou";;

esac

[mubai@localhost test]$ chmod 777 casetest.sh

[mubai@localhost test]$ ./casetest.sh 2

hello shanghai

for

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

do 程式

done

或者

for 變數 in 值1 值2 值3… 

do 程式

done

[mubai@localhost test]$ touch fortest.sh

[mubai@localhost test]$ vim fortest.sh

#!/bin/bash

s=0for

((i=

0;i<=

100;i++

))do

s=$[

$s+$i

]done

echo

$s[mubai@localhost test]$ chmod 777 fortest.sh

[mubai@localhost test]$ ./fortest.sh

5050

[mubai@localhost test]$ touch fortest2.sh

[mubai@localhost test]$ vim fortest2.sh

#!/bin/bash

for i in

$*do

echo

"hello $i "

done

[mubai@localhost test]$ chmod 777 fortest2.sh

[mubai@localhost test]$ ./fortest2.sh beijing shanghai hangzhou

hello beijing

hello shanghai

hello hangzhou

while

[ 條件判斷式 ]

do 程式

done

[mubai@localhost test]$ touch whiletest.sh

[mubai@localhost test]$ vim whiletest.sh

#!/bin/bash

s=0i=1

while

[$i -le 100 ]

do s=$[

$s+$i

] i=$[

$i+1]

done

echo

$s[mubai@localhost test]$ chmod 777 whiletest.sh

[mubai@localhost test]$ ./whiletest.sh

5050

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