linux shell有一套自己的流程控制語句,其中包括條件語句(if),迴圈語句(for,while),選擇語句(case)。下面我將通過例子介紹下,各個語句使用方法。
一、shell條件語句(if用法)
if語句結構[if/then/elif/else/fi]if 條件測試語句二、迴圈語句(for,while,until用法):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 這幾種,注意: 與變數之間用空格分開。
語法結構: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 條件三、shell選擇語句(case、select用法)doaction
done
意思是:直到滿足條件,就退出。否則執行action.
例項(testuntil.sh):
#!/bin/sh
a=10;
until [[ $a -lt 0 ]];do
echo $a;
((a—));
done;
結果:sh testuntil.sh109
8765
4321
0
語法結構case $arg inpattern | 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...