標籤:
假設有變數 var=http://www.linuxidc.com/test.htm
一 # 號截取,刪除左邊字元,保留右邊字元。
echo ${var#*//}
其中 var 是變數名,# 號是運算子,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字元
即刪除 http://
結果是 :www.linuxidc.com/test.htm
二 ## 號截取,刪除左邊字元,保留右邊字元。
echo ${var##*/}
##*/ 表示從左邊開始刪除最後(最右邊)一個 / 號及左邊的所有字元
即刪除 http://www.linuxidc.com/
結果是 test.htm
三 %號截取,刪除右邊字元,保留左邊字元
echo ${var%} #顯示結果sbin/ntpdate
3.2 由字串前面開始對比刪除最長的相符者
文法:${待測變數##樣式}
執行個體:
filename="/usr/sbin/ntpdate"
echo ${filename##} #顯示結果sbin/ntpdate
3.2 由字串前面開始對比刪除最長的相符者
文法:${待測變數##樣式}
執行個體:
filename="/usr/sbin/ntpdate"
echo ${filename##/*/} #顯示結果ntpdate
3.3 由字串後面開始對比刪除最短的相符者
文法:${待測變數%樣式}
執行個體:
filename="/usr/sbin/ntpdate"
echo ${filename%/*} #輸出結果/usr/sbin
3.4 由字串後面開始對比刪除最長的相符者
文法:${待測變數%%樣式}
執行個體:
filename="hello/usr/sbin/ntpdate"
echo ${filename%%/*} #輸出結果hello
4.替換或刪除部分字串
4.1 只替換找到的第一個字串
文法:${待測變數/樣式/替換}
執行個體:
str="hello hello"
echo ${str/hello/world} #結果為world hello
4.2 替換找到的所有樣式字串
文法:${待測變數//樣式/替換}
執行個體:
str="hello hello"
echo ${str/hello/world} #結果為world world
4.3 刪除第一個指定的字串
文法:${待測變數/要刪除的字串/}
執行個體:
str="hello hello"
echo ${str/hello/} #結果為hello
4.4 刪除所有指定的字串
文法:${待測變數//要刪除的變數/}
執行個體:
str="hello world hello"
echo ${str//hello/} #輸出結果為world
5.命令擴充
文法:$(命令)
執行個體: time=$(date) 等價 time=`date`
6.算術擴充
文法:$((算術))
執行個體:
echo "a=$((5*5))" #結果為a=25
shell 截取變數的字串