for name in list;do
done
列表生成方法
1)$(seq start [[step]end] )
2)glob
/etc/rc.d/rc3.d/k*
3)命令
for i in
ping -c 1 -w 1 ....&>/dev/null
return
done
while [ $i -le 100];do
let i++
done
i=1until [ $i -gt 100 ]; do #為假則進入迴圈
let i++
done
迴圈控制語句
##################
continue [次數]: ##可以寫次數,表示提前結束第幾次迴圈,直接進入下一輪判斷
while ; do
...if ; then
continue
fi...
done
break
#############
break :
while ;do
..if ;then
break
fi..
done
例如#########
#!/bin/bash
declare -i i=0
declare -i sum=0
until [ $i -gt 100 ]; do
let i++
if [ $[$i%2] -eq 1 ]; then
continue
filet sum+=$i
done
############
bash -n ..sh 語法檢測一下
死迴圈:
while true;do
if ;then
break
fi...
done
until false;do
..done
###############
特殊用法
while read i;do
..done < /file
依次讀取file每一行,幅值給變數line
for ((i=0;i<=5;i++)); do
..done
case支援glob風格萬用字元
*任意長度任意字元
?任意單個字元
指定範圍內的任意單個字元
a|b a或b
string)
函式function
過程化程式設計:**重用
模組化程式設計
結構化程式設計
語法1function name
語法2
name()
return值 0成功 1-255失敗
函式中區域性變數定義
local name=value
函式遞迴:函式直接或間接呼叫自身
階乘的遞迴:
############
#!/bin/bash
fa()
fact $@
###########
n階斐波那契數列
##############
#!/bin/bash
fab()
fab $@
##############
陣列:儲存多個元素的連續的記憶體空間
陣列名索引:編號從0開始
也可以支援使用自定義的格式,而不僅僅是數值格式
bash陣列支援稀疏格式(比如1-10;其中456沒有元素)
引用陣列中的元素:$
宣告陣列
declare -a array
declare -a array 關聯陣列;
幅值a[0]="ff"
a=("1" "2" ...)
a=([0]="1" [3]="2" ...)
read array
引用陣列 $
省略index表示引用下標0元素
所有元素 令index=* @
統計陣列長度 $
引用指定元素(陣列切片)
$ 引用2-3個變數名
$ 顯示2後面的所有元素
向陣列中追加元素
array[$]
刪除陣列
unset array[index]
關聯陣列
declare -a array
array=([index_name1]='val1' [index_name2]='val2' ...)
Bash迴圈結構
endif endif endif forarginlist do done 有限迴圈,次數取決於 list 元素的個數,內容取決於 list 元素的值 while do done 條件迴圈,當條件為真時,執行一次迴圈 until do done 條件迴圈,當條件為假時,才執行一次迴圈 casear...
bash 迴圈寫法
for 依次訪問列表裡的元素。由空格或回車分隔的串就是列表。for var in 列表 do done 列表的生成方式 for練習 1,分別求100以內所有偶數之和,所有奇數之和 bin bash declare i sum1 0 declare i sum2 0 for var in do if ...
bash陣列定義
如果用標準的 nix shell將不能使用bash的陣列特性。雖然在perl,python,php及其他高階語言中陣列已經不是乙個強大的功能,但陣列使用還是相當廣泛。bash只支援一維陣列,但引數個數沒有限制。宣告乙個陣列 declare a array 如果沒有宣告,按陣列方式直接賦值給變數,ba...