shell中 的使用

2022-09-17 14:09:12 字數 1571 閱讀 1913

1. 截斷功能

$:       拿掉第一條/及其左邊的字串:dir1/dir2/dir3/my.file.txt

$:    拿掉最後一條/及其左邊的字串:my.file.txt

$:       拿掉第乙個.及其左邊的字串:file.txt

$:    拿掉最後乙個.及其左邊的字串:txt

$:     拿掉最後條/及其右邊的字串:/dir1/dir2/dir3

$: 拿掉第一條/及其右邊的字串:(空值)

$:    拿掉最後乙個.及其右邊的字串:/dir1/dir2/dir3/my.file

$: 拿掉第乙個.及其右邊的字串:/dir1/dir2/dir3/my

記憶的方法為:

[list]#是去掉左邊, ##最後乙個

%是去掉右邊, %%第乙個

2. 字串提取

單一符號是最小匹配﹔兩個符號是最大匹配。

$:提取最左邊的 5 個位元組:/dir1

$:提取第 5 個位元組右邊的連續 5 個位元組:/dir2

3. 字串替換

$:將第乙個 dir 提換為 path:/path1/dir2/dir3/my.file.txt

$:將全部 dir 提換為 path:/path1/path2/path3/my.file.txt

4. 針對不同的變數狀態賦值(沒設定、空值、非空值):

$: 若$file沒有設定,則使用my.file.txt作返回值。(空值及非空值時不作處理)

$:若$file沒有設定或為空值,則使用my.file.txt作返回值。(非空值時不作處理)

$: 若$file設為空值或非空值,均使用my.file.txt作返回值。(沒設定時不作處理)

$:若$file為非空值,則使用my.file.txt作返回值。(沒設定及空值時不作處理)

$: 若$file沒設定,則使用my.file.txt作返回值,同時將$file 賦值為 my.file.txt。(空值及非空值時不作處理)

$:若$file沒設定或為空值,則使用my.file.txt作返回值,同時將 $file 賦值為 my.file.txt。(非空值時不作處理)

$: 若$file沒設定,則將my.file.txt輸出至 stderr。(空值及非空值時不作處理)

$:若$file沒設定或為空值,則將my.file.txt輸出至stderr。(非空值時不作處理)

注意: 

":+"的情況是不包含空值的.

":-", ":="等只要有號就是包含空值(null).

5. 變數的長度

$6. 陣列運算

a=(a b c def)

$ 或 $ 可得到 a b c def (全部組數)

$ 可得到 a (第乙個組數),$ 則為第二個組數...

$ 或 $ 可得到 4 (全部組數數量)

$ 可得到 1 (即第乙個組數(a)的長度),$ 可得到 3 (第四個組數(def)的長度)

參考:

shell 中if的使用

shell中if做比較 shell判斷陣列中是否包含某個元素 ary 1 2 3 a 2if a then echo a in ary else echo a not in ary fi比較兩個字串是否相等的辦法是 if test x test x then 這裡的關鍵有幾點 1 使用單個等號 2 ...

shell中 的使用

建立 file dir1 dir2 dir3 my.file.txt 可以用 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file.txt 刪掉第乙個 及其左邊的字串 file.txt 刪掉最後乙個 及其...

shell中變數的使用

有關環境變數,詳見linux環境變數詳解 test 123 區域性環境變數一般用小寫 export test 123 全域性環境變數一般用大寫 export myname xiao ba wu 變數值有空格,要用單引號圍起來 export test 也可以這樣把前面的區域性變數匯出到全域性 loca...