Sell变量的取用、删除、取代与替换
變量的取用:echo
echo $variable
 echo $PATH
 echo ${PATH}
變量的配置守則
myname=VBird
myname = VBird 或者 mayname=VBird Tsai
2myname=VBird
var=“lang is $LANG” 則可得 lang is en_US
單引號內的特殊字符則僅為一般字符(純文本),如下所示:
var=‘long is $LANG’ 則可得 ‘lang is $LANG’
例如想要取得核心版本的配置:
version=$(uname -r)再echo $version 可得2.6.18-128.el6
PATH="$PATH":/home/bin
PS.我一般用${變量},再變量拼接的時候尤其重要,name=$nameyes,name的內容時$nameyes這個變量;name=${name}yes,可以$name和yes拼接起來
exprot PATH
unset myname
變量內容的刪除、取代與替換
范例一:先讓小寫的path自定義變量配置的PATH內容相同
 path=${PATH}
 echo $PATH
 /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
 范例二:假設要將錢連個目錄刪除掉,如何顯示?
 echo ${paht#/*kerberos/bin:}
 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
 解釋 
 
范例三:我想要刪除前面所有的目錄,僅保留最后一個目錄
 echo ${path##/*:}
 /root/bin
 多加了一個#變成##之后,變成”刪除掉最長的那個數據“
- #:符合取代文字的"最短的"那一個
 - ##:符合取代文字的”最長的“那一個
 
如果想要"從后面向前刪除變量的內容"呢?這個時候就要使用百分號(%)符號了
范例四:我想要刪除最后面那個目錄,亦即從:到bin為止的字符串
 echo ${path%:*bin}
 /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
范例五:;那如果我只想要保留第一個目錄呢?
 echo ${path%%:*bin}
 /usr/kerberos/sbin
 了解刪除功能后,接下來談談取代吧
范例六:將path的變量內容內的sbin取代成大寫SBIN:
 echo ${path/sbin/SBIN}
 /usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
這部分就容易理解多了!關鍵詞在于連個斜線,兩斜線中間的是舊字符串,后面的是新字符串
echo ${path//sbin/SBIN} /usr/kerberos/SBIN:/usr/kerberos/bin:/usr/local/SBIN:/usr/local/bin:/SBIN:/bin:/usr/SBIN:/usr/bin:/root/bin若果是兩條斜線,那么就變成所有符合的內容都會被取代
總結
| ${變量#關鍵詞} ${變量##關鍵詞}  | 若變量內容從頭開始的數據符合"關鍵詞",則將符合的最短數據刪除 若變量內容從頭開始的數據符合"關鍵詞",則將符合的最長數據刪除  | 
| ${變量%關鍵詞} ${變量%%關鍵詞}  | 若變量內容從尾向前的數據符合"關鍵詞",則將符合的最短數據刪除 若變量內容從尾向前的數據符合"關鍵詞",則將符合的最長數據刪除  | 
| ${變量/舊字符串/新字符串} ${變量//舊字符串/新字符串}  | 若變量內容符合"舊字符串",則"第一個舊字符串會被新字符串取代" 若變量內容符合"舊字符串" 則 “全部的舊字符串會被新字符串取代”  | 
變量的測試與內容替換
在某些時刻我們常常需要"判斷"某個變量是否存在,若變量存在則使用既有的配置,若變量不存在則給予一個常用的配置。
 范例一:測試一下是否存在 username 這個變量,若不存在則基于username內容為root
范例二:若 username 未配置或為空字符串,則將 username 內容配置為 root
username=""username=${username-root}echo $username<==因為 username 被配置為空字符串了!所以當然還是保留為空字符串!username=${username:-root}echo $usernameroot <==加上『 : 』后若變量內容為空或者是未配置,都能夠以后面的內容替換!| 變量配置方式 | str 沒有配置 | str 為空字符串 | str 已配置非為空字符串 | 
| var=${str-expr} | var=expr | var= | var=$str | 
| var=${str:-expr} | var=expr | var=expr | var=$str | 
| var=${str+expr} | var= | var=expr | var=expr | 
| var=${str:+expr} | var= | var= | var=expr | 
| var=${str=expr} | str=expr var=expr  | str 不變 var=  | str 不變 var=$str  | 
| var=${str:=expr} | str=expr var=expr  | str=expr var=expr  | str 不變 var=$str  | 
| var=${str?expr} | expr 輸出至 stderr | var= | var=$str | 
| var=${str:?expr} | expr 輸出至 stderr | expr 輸出至 stderr | var=$str | 
轉自:https://www.cnblogs.com/shirley130912/p/4301769.html
總結
以上是生活随笔為你收集整理的Sell变量的取用、删除、取代与替换的全部內容,希望文章能夠幫你解決所遇到的問題。