字符串切片 ${var:offset:number}
例如: name="Obama"|echo ${name:0:2}
或者echo ${name:1}
取最右側的字符串 ${name: -3} 必須在:後面加一個空格
基於模型取字串
${var#*word} 其中word可以使任意字符;功能:自左而又,
查找var變量所存儲的字符串中,第一次出現word,刪除字符串開頭至
第一次出現word字符之間的所有字符。
例如
name="123"|echo ${name#*2} 這樣就會顯示3,刪除一次2
name="122323233"|echo ${name##*2} 表示刪除最後一次出現2之前的所有字符
#表示左-->刪除 ##*刪最後一次以及之前 #*只刪一次
%表示右-->刪除 %%*刪最後一次以及之前 %*只刪一次
例如
url=http://www.123.com:8080
${url##*:} 取端口 8080
${url%%*:} 取寫協議http
查找替換
${var/pattern/substi} 查找var所表示中第一次被p..匹配到的替換爲s..
${var//pattern/substi} 查找var所表示中所有被p..匹配到的替換爲s..
${var/#pattern/substi} 只替換行首爲p..的
${var/%pattern/substi} 只替換行尾爲p..的
查找刪除
${var/pattern} 第一次並且刪除
${var//pattern} 所有刪除
${var/#pattern} 刪除行首出現一次
${var/%pattern} 刪除行尾出現一次
字符大小寫替換
${var^^} 所有小寫-->大寫
${var,,} 所有大寫-->小寫
變量賦值
${var:-value} 如果var爲空或未設置,返回value;否則返回var
${var:=value} 如果var爲空或未設置,返回value,
並且將value賦值var;否則返回var
${var:+value} 如果var不空,返回value
${var:?error_info} 如果var爲空或未設置,返回error_info;否則返回var值
爲腳本程序使用配置文件
(1)定義文本文件,每行定義“name=value”
(2)在腳本中(source或者.)此文件即可
臨時文件創建命令
mktemp
XXX至少出現3次
-d 創建臨時目錄
mktemp /tmp/test.XXX
就會用到 字母數字等62個變化隨機填充XXX
mktemp --tmpdir=/path a.XXX
指明目錄的情況下創建臨時文件
引用 tmpfile=$(mktemp /tmp/test.XXX)
install命令
install -m 700 -d testdir 創建一個權限爲700的目錄
install file1 [file2..] 目錄
install -t 目錄 file...
-d 創建空目錄
選項
-m 制定權限
-o 指定屬主
-g 指明屬組