shell基本型別和引數傳遞

2021-07-13 19:54:38 字數 1609 閱讀 5732

【shell字串】

字串可以用單引號,也可以用雙引號,也可以不用引號。

1.        單引號

單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;

單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。

2.        雙引號

雙引號裡可以有變數

雙引號裡可以出現轉義字元

3.        獲取字串長度

string="abcd"

echo$ #輸出4

4.        提取子字串

string="runoob is a greatsite"

echo$ #

輸出unoo

從字串第 2 個字元開始擷取 4 個字元

5.        查詢子字串

string="runoob is a greatcompany"

echo `expr index "$string" is`  # 輸出8

查詢字元 "i 或 s" 的位置。"`"

是反引號,而不是單引號

"'"

【陣列】

bash支援一維陣列,不限定陣列大小。在shell中,用括號來表示陣列,陣列元素用"空格"符號分割開。

1.        定義陣列

陣列名=(值1

值2 ...值n)

2.        讀取陣列$

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

echo $

3.        獲取陣列長度

# 取得陣列元素的個數

length=$

# 或者

length=$

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

【傳遞引數】

指令碼內獲取引數的格式為:$n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推……

$#     傳遞到指令碼的引數個數

$*     以乙個單字串顯示所有向指令碼傳遞的引數。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。

$$     指令碼執行的當前程序id號

$!     後台執行的最後乙個程序的id號

$@   與$*相同,但是使用時加引號,並在引號中返回每個引數。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。

$-      顯示shell使用的當前選項,與set命令功能相同。

$?     顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

$* 表示以字串方式傳遞了乙個引數,$@表示傳遞了多個引數。

基本型別和引用型別作為引數傳遞

引用型別資料和基本型別資料作為引數傳遞有沒有差別呢?我們用如下 進行說明,並配合 讓大家更加清晰 基本型別作為引數傳遞時,其實就是將基本型別變數x空間中的值複製了乙份傳遞給呼叫的方法show 當在show 方法中x接受到了複製的值,再在show 方法中對x變數進行操作,這時只會影響到show中的x。...

基本型別和引用型別作為引數傳遞(重要)

基本型別和引用型別作為引數傳遞 引用型別資料和基本型別資料作為引數傳遞有沒有差別呢?我們用如下 進行說明,並配合 讓大家更加清晰 1.基本資料型別傳遞 基本型別作為引數傳遞時,其實就是將基本型別變數x空間中的值複製了乙份傳遞給呼叫的方法show 當在show 方法中x接受到了複製的值,再在show ...

js 基本型別和引用型別 變數複製 引數傳遞

ecmascript 變數可能包含兩種不同資料型別的值 基本型別值和引用型別值 基本型別值指的是 簡單的資料段 undefined null boolean number 和 string 這 5 種基本資料型別是按值訪問 的,因為可以操作儲存在變數中的實際的值。而引用型別值指那些可能由多個值構成的...