Shell函式與陣列 GongWei1997

2021-10-25 09:44:16 字數 3009 閱讀 5535

遞迴函式

陣列包括的資料型別

shell陣列操作

shell指令碼除錯

bash命令

將命令序列按格式謝在一起

可方便重複使用命令序列

shell函式定義

[ function ] 函式名()
呼叫函式的方法

函式名 [引數1][引數2]
函式在shell指令碼中僅在當前shell環境中有效

shell指令碼中變數預設全域性有效

將變數限定在函式內部使用local命令

示例函式內部變數通過local來實現

通過定義myfuun函式,在其內部設定區域性變數i

函式內部和外部分別賦值,進行結果驗證

函式名稱    引數1   引數2   引數3   ......
$1 $2 $3 … $ $ …

#shell陣列

獲取陣列長度

獲取元素長度

遍歷元素

元素切片

元素替換

元素刪除

陣列名=(value0 value1 value2)
陣列名=([0]=value [1]=value [2]=value)
列表名=「value0 value1 value2 ...」

陣列名=($列表名)

陣列名[0]="value"

陣列名[1]="value"

陣列名[2]="value"

數值型別

字元型別

使用""或』'定義

$

或$

$

或$

$p
for i in $

do echo $i

done

$
$
unset 陣列名
shell [-nvx] 指令碼名
常用選項:

-n:不會執行改指令碼,僅查詢指令碼語法是否有問題,如果沒有語法問題就不顯示任何內容,如果有問題會提示報錯。

-v:在執行指令碼時,先將指令碼內容輸出到螢幕上然後執行指令碼,如果有錯誤,也會給出錯誤提示

-x:將執行的指令碼內容輸出到螢幕上,這個是對除錯很有用的引數

常用選項

-n:不換行輸出

-e:使轉義字元生效

\b:轉義後相當於按退格鍵(backspace) ,但前提是"\b"後面存在字元,具體效果參考下方示例。

\c:不換行輸出,在"\c"後面不存在字元的情況下,作用相當於echo -n,具體效果參考下方示例。

\n:換行,效果看示例。

\f:換行,但是換行後的新行的開頭位置連線著上一行的行尾,具體效果檢視示例;

\v:與\f相同;

\t:轉以後表示插入tab,即製表符,已經在上面舉過例子;

\r:游標移至行首,但不換行,相當於使用"\r"以後的字元覆蓋"\r"之前同等長度的字元,只看這段文字描述的話可能不容易理解,具體效果檢視示例;

\:表示插入""本身;

命令語法

sh [-nvx]指令碼名
常用選項

-n:不會執行該指令碼,僅查詢指令碼語法是否有問題,如果沒有語法問題就不會顯示任何內容,如果有問題會提示報錯。

-v:在執行指令碼時,先將指令碼的內容輸出到螢幕上然後有錯誤,也會給出錯誤提示。

-x:將執行的指令碼內容輸出到螢幕上,這個是對除錯很有用的引數。

set命令

set -x			#開啟調節模式

set +x #關閉調節模式

shell 函式與陣列

2.陣列 2.5陣列的替換 3.shell指令碼除錯 函式在shell指令碼中僅在當前shll環境中有效,shell指令碼中變數預設全域性有效 若將變數限定在函式內部使用,在變數前加local命令 function 函式名 function可省略 return x x為數值,即執行完返回乙個值,0或...

Shell函式及陣列

函式就是將命令語句按格式寫在一起,可以方便重複使用命令 函式的格式 function 函式名 呼叫函式的方法 函式名 引數1 引數2 函式的作用範圍 函式再shell指令碼中僅在當前shell環境有效 shell指令碼中變數預設為全域性變數 若要定義僅在函式內部的區域性變數時使用local 變數名 ...

Shell 變數與陣列

像其他程式語言一樣,shell語言支援變數賦值操作。shell的變數宣告時沒有型別的概念。而且從某種意義上來說,shell變數不需要宣告,在給變數賦值的同時就指定了變數的型別及變數的值。變數的使用極大地增強了指令碼的靈活性。變數宣告 很簡單,格式是 變數 值 注意在等式的兩邊不能有空格。如果兩邊均有...