shell中${}用法
阿新 • • 發佈:2018-12-02
${}配合#及%使用達到字串中特定位置字元刪除操作
假設有一個變數:
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
輸出:
輸出: