shell流程控制學習

2021-06-09 06:17:19 字數 3988 閱讀 8284

linux shell有一套自己的流程控制語句,其中包括條件語句(if),迴圈語句(for,while),選擇語句(case)。下面我將通過例子介紹下,各個語句使用方法。

一、shell條件語句(if用法)

if語句結構[if/then/elif/else/fi]if 條件測試語句

then

action

[elif 條件

action

else

action]fi

如果對於:條件測試語句不是很清楚,可以參考:linux shell 邏輯運算子、邏輯表示式詳解

shell命令,可以按照分號分割,也可以按照換行符分割。如果想一行寫入多個命令,可以通過「';」分割。

如:[chengmo@centos5 ~]$ a=5;if [[ a -gt 4 ]] ;then echo 'ok';fi;                        

ok例項:(test.sh)

條件測試有:,,test 這幾種,注意: 與變數之間用空格分開。

二、迴圈語句(for,while,until用法):

語法結構:1.for … in 語句for 變數 in seq字串

doaction

done

說明:seq字串 只要用空格字元分割,每次for…in 讀取時候,就會按順序將讀到值,給前面的變數。

例項(testfor.sh):

seq 10 產生 1 2 3 。。。。10空格分隔字串。

2.for((賦值;條件;運算語句))

for((賦值;條件;運算語句))

doaction

done;

例項(testfor2.sh):

while語句結構while 條件語句

doaction

done;

例項1:

#!/bin/sh

i=10;

while [[ $i -gt 5 ]];do

echo $i;

((i--));

done;

執行結果:********************====

sh testwhile1.sh109

876例項2:(迴圈讀取檔案內容:)

#!/bin/sh

while read line;do

echo $line;

done < /etc/hosts;

執行結果:***************====

sh testwhile2.sh

# do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 centos5 localhost.localdomain localhost

語法結構:until 條件

doaction

done

意思是:直到滿足條件,就退出。否則執行action.

例項(testuntil.sh):

#!/bin/sh

a=10;

until [[ $a -lt 0 ]];do

echo $a;

((a—));

done;

結果:sh testuntil.sh109

8765

4321

0

三、shell選擇語句(case、select用法)

語法結構case $arg in  

pattern | sample) # arg in pattern or sample  

;;  

pattern1) # arg in pattern1  

;;  

*) #default  

;;  

esac 

說明:pattern1 是正規表示式,可以用下面字元:

*       任意字串

?       任意字元

[abc]   a, b, 或c三字元其中之一

[a-n]   從a到n的任一字元

|       多重選擇

例項:

#!/bin/sh 

case $1 in

start | begin)

echo "start something"  

;;stop | end)

echo "stop something"  

;;*)

echo "ignorant"  

;;esac

執行結果:********************==

testcase.sh start

start something

語法:select 變數name  in seq變數

doaction

done

例項:

#!/bin/sh 

select ch in "begin" "end" "exit"

docase $ch in

"begin")

echo "start something"  

;;"end")

echo "stop something"  

;;"exit")

echo "exit"  

break;

;;*)

echo "ignorant"  

;;esac

done;

執行結果:

說明:select是迴圈選擇,一般與case語句使用。

shell流程控制學習

linux shell有一套自己的流程控制語句,其中包括條件語句 if 迴圈語句 for,while 選擇語句 case 下面我將通過例子介紹下,各個語句使用方法。一 shell條件語句 if用法 if語句結構 if then elif else fi if 條件測試語句 then action e...

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