1. 程式人生 > >shell中${}用法

shell中${}用法

${}配合#及%使用達到字串中特定位置字元刪除操作
假設有一個變數:

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

1、使用${}刪除特定位置字元後得到不同的值

${file#*/}:刪掉第一個/及其左邊的字串     結果  --  dir1/dir2/dir3/my.file.txt
${file##*/}:刪掉最後一個/及其左邊的字串  結果 -- my.file.txt
${file#*.}:刪除第一個.及其左邊的字串  結果 -- file.txt
${file##*.}:刪除最後一個.及其左邊的字串  結果 -- txt
${file%/*}:刪除最後一個/及其右邊的字串  結果 -- /die1/dir2/dir3
${fiel%%/*}:刪除第一個/及其右邊的字串  結果 -- 空值
${file%.*}:刪掉最後一個.及其右邊的字串  結果 -- /dir1/dir2/dir3/my.file

記憶技巧:
# 是去掉左邊(鍵盤上#在$左邊)
% 是去掉右邊(鍵盤上%在$的右邊)

2、按一定規律提取字元

${file:0:5}:提取最左邊的 5 個位元組:/dir1  (第0個字元之後的5個字元)
${file:5:5}:提取第 5 個位元組右邊的連續5個位元組:/dir2  (第五個字元之後的5個字元)

3、可以對變數值裡的字串作替換

${file/dir/path}
${file//dir/path}

第一句將第一個dir 替換為path:/path1/dir2/dir3/my.file.tx
第二句將全部dir 替換為 path:/path1/path2/path3/my.file.txt
輸出:
在這裡插入圖片描述


輸出:
在這裡插入圖片描述