陣列中可以存放多個值。bash shell 只支援一維陣列(不支援多維陣列),初始化時不需要定義陣列大小(與 php 類似)。
與大部分程式語言類似,陣列元素的下標由0開始。
shell 陣列用括號來表示,元素用"空格"符號分割開,語法格式如下:
array_name=(value1 value2 ... valuen)
例項
#!/bin/bash
my_array=
(a b "c" d)
#讀取陣列
echo
"第乙個元素為: $"
echo
"第二個元素為: $"
echo
"第三個元素為: $"
echo
"第四個元素為: $"
執行指令碼,輸出結果如下所示:
$ chmod +x test.sh
$ ./test.sh
第乙個元素為: a
第二個元素為: b
第三個元素為: c
第四個元素為: d
獲取陣列中的所有元素
使用@ 或 * 可以獲取陣列中的所有元素,例如:
#!/bin/bash
my_array[0]
=amy_array[1]
=bmy_array[2]
=cmy_array[3]
=decho
"陣列的元素為: $"
echo
"陣列的元素為: $"
#執行指令碼,輸出結果如下所示:
$ chmod +x test.sh
$ ./test.sh
陣列的元素為: a b c d
陣列的元素為: a b c d
shell最常見的流程控制有四種:
iffor
case
while
一:if語句
if 語句語法格式:
if condition
then
command1
command2
...commandn
fi
寫成一行(適用於終端命令提示符):
if[$(
ps -ef |
grep -c "ssh"
) -gt 1 ]
;then
echo
"true"
;fi
末尾的fi就是if倒過來拼寫,後面還會遇到類似的。
for 迴圈
與其他程式語言類似,shell支援for迴圈。
for迴圈一般格式為:
for var in item1 item2 ... itemn
do command1
command2
...commandn
done
#寫成一行:
for var in item1 item2 ... itemn;
do command1; command2… done
;
while 語句
while迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為:
while condition
docommand
done
#以下是乙個基本的while迴圈,測試條件是:如果int小於等於5,那麼條件返回真。int從0開始,每次迴圈處理時,int加1。執行上述指令碼,返回數字1到5,然後終止。
#例項#!/bin/bash
int=1
while
(( $int<=5))
doecho
$int
let"int++"
done
#執行指令碼,輸出:12
345
case
shell case語句為多選擇語句。可以用case語句匹配乙個值與乙個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:
case 值 in
模式1)
command1
command2
...commandn
;;模式2)
command1
command2
...commandn
;;esac
case工作方式如上所示。取值後面必須為單詞in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。
取值將檢測匹配的每乙個模式。一旦模式匹配,則執行完匹配模式相應命令後不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
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...