shell中 的作用

2022-08-17 06:54:12 字數 1328 閱讀 8828

假設我們定義了乙個變數為:

file=/dir1/dir2/dir3/my.file.txt

可以用$分別替換得到不同的值:

$:刪掉第乙個/ 及其左邊的字串:dir1/dir2/dir3/my.file.txt

$:刪掉最後乙個/  及其左邊的字串:my.file.txt

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

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

$:刪掉最後乙個 /  及其右邊的字串:/dir1/dir2/dir3

$:刪掉第乙個/  及其右邊的字串:(空值)

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

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

記憶的方法為:

# 是 去掉左邊(鍵盤上#在 $ 的左邊)

%是去掉右邊(鍵盤上% 在$ 的右邊)

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

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

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

也可以對變數值裡的字串作替換:

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

$:將全部dir 替換為path:/path1/path2/path3/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 。(非空值時不作處理)

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

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

$ 可計算出變數值的長度:

$ 可得到27 ,因為/dir1/dir2/dir3/my.file.txt 是27個位元組

shell中引號的作用

引號包含雙引號,單引號,反引號,反斜槓 作用如下 search dbl vm 211 13 algorithm echo 24782 search dbl vm 211 13 algorithm echo 單引號把特殊符號給轉義了 search dbl vm 211 13 algorithm ech...

Shell中括號的作用

命令組。括號中的命令將會斷開乙個子shell順序執行,所以括號中的變數不能被指令碼餘下的部分使用。括號中多個命令之間用分號隔開,最後乙個命令可以沒有分號,各命令和括號之間不必有空格。命令替換。等同於 cmd shell掃瞄一遍命令列,發現了 cmd 結構,便將 cmd 中的cmd執行一次,得到其標準...

shell中豎線的作用 Shell中符號意義

末端 end of line 這個常用在 grep sed awk 以及 vim vi 當中。變數的正規表示式 bash 對 定義了不少用法。見本文後部 引用script 的執行引用變數 引用引數的演算法與一般指令相同,指令本身為0,其後為1,然後依此類推。引用變數的代表方式如下 0,1,2,3,4...