linux shell指令碼基礎知識之二

2021-06-22 13:13:13 字數 1801 閱讀 1776

一、shell字串

字串是shell程式設計中最常用最有用的資料型別(除了數字和字串,也沒啥其它型別好用了),字串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟php類似。

str='this is a string'

單引號字串的限制:

your_name=『qinjx』
str="hello, i know your are \"$your_name\"! \n"

雙引號的優點:

your_name="qinjx"

greeting="hello, "$your_name" !"

greeting_1="hello, $ !"

echo $greeting $greeting_1

string="abcd"

echo $ #輸出 4

string="alibaba is a great company"

echo $ #輸出liba

string

="alibaba is a great company"

echo `expr index "$string" is`

二、shell陣列

linux shell在程式設計方面比windows批處理強大很多,無論是在迴圈、運算。

bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。在shell中,用括號來表示陣列,陣列元素用「空格」符號分割開。定義陣列的一般形式為:

陣列名=(值1 值2 ... 值n)

例如:

_name

=(value0 value1 value2 value3)

array_name=(value0 value1 value2 value3)

或者

array_name=(

value0

value1

value2

value3

)

還可以單獨定義陣列的各個分量:

array_name[0]=value0

array_name[1]=value1

array_name[n]=valuen

可以不使用連續的下標,而且下標的範圍沒有限制。讀取陣列元素值的一般格式是: $

例如:

valuen=$

使用@符號可以獲取陣列中的所有元素,例如:

echo $

獲取陣列長度的方法與獲取字串長度的方法相同,例如:

# 取得陣列元素的個數

length=$

# 或者

length=$

# 取得陣列單個元素的長度

lengthn=$

Linux Shell指令碼基礎

shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...

Linux shell指令碼基礎

ls 列出目錄下的清單 cat 連線顯示檔案內容 less more 分頁顯示檔案內容,建議使用less,相比於more更方便 head 顯示檔案頭部,可指定行數,預設顯示10行 tail 顯示檔案尾部,可指定行數,預設顯示10行 file 顯示檔案型別 wc 檢視檔案或統計資訊 find 查詢檔案...

linux shell指令碼基礎 3

6.函式 function name 注意 必須在呼叫乙個函式之前先對它進行定義,不存在前向宣告 當乙個函式被呼叫時,指令碼程式的位置引數 1,2等 會被替換為函式的引數。這也是讀取傳遞給函式的引數的辦法。當函式執行完畢後,這些引數會恢復為它們先前的值。可以通過return命令讓函式返回數字值 注意...