shell中的字串

2021-10-02 17:41:07 字數 1844 閱讀 5678

字串有三種形式:

由單引號』 '包圍的字串 任何字元都會原樣輸出,在其中使用變數是無效的 字串中不能出現單引號,即使對單引號進行轉義也不行

由雙引號" "包圍的字串 如果其中包含了某個變數,那麼該變數會被解析(得到該變數的值),而不是原樣輸出

字串中可以出現雙引號,只要它被轉義了就行

不被引號包圍的字串 不被引號包圍的字串**現變數時也會被解析,這一點和雙引號" "包圍的字串一樣

字串中不能出現空格,否則空格後面的字串會作為其他變數或者的命名解析

shell中#可檢視字串的長度。

但在檔案中寫時,注意用{}包圍,否則會被視為注釋。

在shell中不需要使用任何運算子,將兩個字串併排放在一起就能實現拼接(也稱連線、合併)

shell擷取字串通常有兩種方式:

從指定位置開始擷取和從指定字元(字串)開始擷取

格式:

$

sting是要擷取的字串;

start是起始位置(從左邊開始,從0開始計數);

length是要擷取的長度(省略的話表示截到字串的末尾)

同上面格式相比,這種格式僅僅多了0-,這是固定的寫法,用來表示從字串右邊開始計數

注意:

1.從左邊開始計數時,起始數字為0;從右邊開始計數時,其實數字為1;

2.不管從哪邊開始計數,擷取方向都是從左到右

這種擷取方式無法指定字串的長度,只能從指定字元擷取到字串末尾

$

string表示要擷取的字串

chars是指定的字元(字串)

*是萬用字元的一種,表示任意長度的字串

chars*連線起來表示:忽略左邊的左右字元,直到遇到chars(chars不會被擷取)

具體格式:

$

它會一直匹配到最後乙個字元,進行擷取

格式:

$

這裡一定要注意*的位置

擷取方式:擷取chars左邊的字元,忽略chars右邊的字元(所以*在chars右側)

同樣不會擷取到指定字元chars

shell中 字串擷取

一 號擷取,刪除左邊字元,保留右邊字元。echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.google.com test.htm 二 號擷取,刪除左邊字元,保留右邊字元。echo 表示從左邊開始刪除最後 最右邊 乙個 號及左...

shell中字串擷取

linux 的字串擷取很有用。有八種方法。假設有變數 var user 123 321 home dir 1.號擷取,刪除左邊字元,保留右邊字元。root zhoucentos var user 123 321 home dir root zhoucentos echo 321 home dir 其...

shell中字串的擷取

str abc123abcabc 計算字串的長度 echo 12 位置引數有關操作 echo 位置引數的個數 echo 位置引數的個數和上面的效果一樣 echo 把所有的位置引數作為乙個字串輸出 echo 效果同上 字串擷取 從 string的左邊第乙個字元截掉第乙個匹配的 substring 從 ...