bash 對${}定義了不少用法。對變數的操作及判斷是乙個十分有用的工具,應好好學習一下,以下是說明的表列
變數的刪除$$
$$變數的提取$$
變數的替換$$
變數的刪除、提取、替換
# file=/dir1/dir2/dir3/my.file.txt //定義乙個變數
# echo $file //顯示定義的變數
/dir1/dir2/dir3/my.file.txt
# echo $ //刪除/和/左邊的字串,最短匹配的
dir1/dir2/dir3/my.file.txt
# echo $ //刪除/和/左邊的字串,最長匹配的
my.file.txt
# echo $ //刪除/和右邊的字串,最短匹配
/dir1/dir2/dir3
# echo $ //刪除/和右邊的字串,最長匹配,全部刪除完了,因此為空置
# echo $
/dir2/dir3/my.file.txt //提取 這個不知如何解釋,沒查到
# echo $ //提取第5個位元組左邊的5個 這個不知如何解釋,沒查到
/dir1
# echo $ //提取第5個位元組的右邊6個位元組
/dir2/
# echo $ //用path替換最左邊的dir,其中/應該是參考符,如果沒有/的變數內容應該如何替換?
/path1/dir2/dir3/my.file.txt
# echo $ //用path替換全部的dir
/path1/path2/path3/my.file.txt
#利用 $ 還可針對不同的變數狀態(沒設定、空值、非空值)賦值:$$
$$ 當parameter指示的引數沒有被設值的時候,將會通過標準錯誤的方式顯示word中的語句。$$
$$ 可計算出變數值的長度:
$ 可得到 27 ,因為/dir1/dir2/dir3/my.file.txt 是27個位元組
如果old變數為未設定或叫不存在,那麼將new=content
# unset new old
# echo $
content
# new=$
# echo new=$new,old=$old
new=content,old=
如果old變數為空字串,那麼將new=空
# unset old new
# old=""
# new=$
# echo new=$new,old=$old
new=,old=
#如果old變數為非空字串,那麼new=$old
# unset old new
# old=old
# new=$
# echo new=$new,old=$old
new=old,old=old
#總結及其他字元整理
變數設定方式 old沒有設定 old為空字串 old已設定為非空字串
new=$ new=content new= new=$old
new=$ new=content new=content new=$old
new=$ new= new=content new=content
new=$ new= new= new=content
new=$ old=content
new=content old不變
new= old不變
new=$old
new=$
old=content
new=content
old=content
new=content
old不變
new=$old
new=$
content輸出至stderr new= var=$str
new=$
content輸出至stderr content輸出至stderr var=$str
linux變數內容的刪除和替換
shell內建了對變數進行刪除和替換的功能,非常的方便。雖然平時用的機會非常少,但是閱讀別人寫的指令碼時,會經常遇到。所以進行乙個學習總結。從變數頭部開始匹配模式,將符合的最短資料刪除 從變數頭部開始匹配模式,將符合的最長資料刪除 從變數尾部開始匹配模式,將符合的最短資料刪除 從變數尾部開始匹配模式...
bash變數內容的刪除與取代
摘自 鳥哥的linux私房菜 基礎學習版 每個引數字元 variable 要修改的變數 符合取代文字的 最短的 那乙個 符合取代文字的 最長的 那乙個 或 代表 從變數內容的最前面開始刪除 從最前面開始刪除時,從最前面的 字元開始刪除 kerberos bin 用來取代0到無窮多個任意字元,用來表示...
shell 變數內容刪除 替換
鳥哥例項練習 變數設定方式說明 若變數內容從頭開始的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從頭開始的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從尾向前的資料符合 關鍵字 則將符合的最短資料刪除 若變數內容從尾向前的資料符合 關鍵字 則將符合的最長資料刪除 若變數內容符合 舊字...