bash 迴圈與陣列

2021-09-06 17:24:21 字數 2323 閱讀 3395

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