linux变量最大长度,51CTO博客-专业IT技术博客创作平台-技术成就梦想
變量操作總結:
${Var:-Value} ? ? ? ?變量Var 為unset 或 null ?則輸出Value。 有值則輸出變量Var的值。
${Var:=Value}????????變量Var 為unset 或 null ?則輸出Value,并且賦值于變量Var。 同上。
${Var:+Value}????????變量Var 為unset 或 null ?則輸出變量Var。 有值則輸出Value.
${Var:?Value}????????變量Var 為unset 或 null ?則輸出錯誤信息Value。有值則輸出變量Var的值。
${Var-Value} ? ? ? ?變量Var 為 unset 則輸出Value。 有值或為空,則輸出變量Var的值。
${Var=Value}????????變量Var 為 unset 則輸出Value,并且賦值于變量Var。????????同上。
${Var+Value}????????變量Var 為 unset 則輸出變量Var。有值或為空,則輸出Value
${Var?Value}????????變量Var 為 unset 則輸出錯誤信息Value。 有值或為空, 則輸出變量Var。
在這種的操作中,只有三種情況:1. 變量有值, 2. 變量沒有值, ?3. 沒有變量
在上面加:的操作符中, 空不代表值, ? ?在沒有:號的操作符中,空也代表為值。
${變量} ? ? ?一般變量引用。 ?{} 一般情況可省略。
${#變量} ? ? 取變量中字符的個數(長度)。
bash腳本就是由bash提供的,變量當然也是bash提供的了。
所以bash的glob通配符也可以在大部分里使用。
一、 變量值的編輯:
1. 變量字符匹配則不輸出。?? 2. 變量內容字符偏移并截出余下的部分字符。
3. 變量字符的替換。
1. ?所匹配到的變量內容將不顯示。
操作符:#???????????????? ${變量#匹配字符}$?do="Hello?World"
$?echo?$do
Hello?World
$?echo?${do#He}
llo?World????????????????????#He沒有顯示
$?echo?${do#*l}
lo?World?????????????????????#從左到右匹配
#號在上面那種變量應用中,把左邊變量的值,按右邊的字符串從左到右最短區配,
所區配到的字符不輸出。 支持通配符,如?。
操作符:?##$?echo?${do##*l}
d????????????????????????#變量的值是Hello?World,?從左邊一直匹配到倒數第二個字符l.
##號,這個則就是最長區配了。?? 記住是從左到右的區配順序。
操作符:%????????? ?${變量%匹配字符}$?echo?$do
Hello?World
$?echo?${do%ld}
Hello?Wor
$?echo?${do%o*}
Hello?W
%號跟上面#號的形式都一樣,只不過是從右到左的匹配。 同樣的一個%號是?最短區配
操作符:%%$?echo?${do%%o*}
Hell
%%號,兩個%號,最長區配。? 通配符都是支持的。 畢竟都是在shell下,經由shell解釋輸出。
2.? 上面的 # % 都是用來定義匹配變量內容的操作。而下面是用來定義固定的字符的操作。
${變量:數字}$?echo?$do
Hello?World
$?echo?${do:3}
lo?World????????????????????#變量內容的前三個字符沒有顯示。
前面的3個字符沒有輸出, 專業點叫作 偏移 , 向右偏移了3個字符。
$?echo?${do:3:2}
lo
$?echo?${do:3:5}
lo?Wo
在上面偏移的基礎上,再顯示向后截取的幾位字符。 空格可也是字符啊。
3. ?替換變量內容。
${變量/匹配字符/替換字符}$?echo?${do/l/L}
HeLlo?World
把第一個匹配到的字符,也就是l , 替換成大寫L .
這里是只替換了第一個匹配到的字符。如果把變量后面的/變成兩個,就變成替換所有了。
${變量//匹配字符/替換字符}$?echo?${do//l/L}
HeLLo?WorLd
替換了所有的l,這里也是可以用通配符的, 但是這里沒有最長最短匹配之說,只有替換1個還是替換所有的字符。至于效果,親們可以自己試試。
二、 變量....., 不知道叫什么名了。
在這種的操作中,只有三種情況:1. 變量有值, 2. 變量沒有值, ?3. 沒有變量
注意: 一般情況下,變量為空也是一種值。 除非有特殊的操作。
do= ? ? ????? ? ?do變量有值了。
declare ?var???? 生成了var變量,但var變量沒有值。
1.? ${變量-值}
里面的是減號。? 那個值當然也可以用變量,不過要加上$,相當于變量引用。-號的左邊和右邊完全是不同的兩個部分。
$?echo?$do
Hello?World
$?echo?${do-kaka}??????????????#在do有值的情況下,輸出do的值。
Hello?World
$?unset?do?????????????????????#刪除變量do
$?echo?${do-kaka}??????????????#在沒有do變量的情況下,也就是沒有值。則輸出后面的值。
kaka
$?do=??????????????????????????#在do為空的情況下。
$?echo?${do-kaka}??????????????#在do有值的情況下,輸出do的值,do是空值。
#所以輸出空。
這個的別一種方式一般在判斷默認值的時候用。如: do=${do:-kaka}
2.? ${變量=值}?? 里面是等號。$?echo?$do
Hello?World
$?echo?${do=kaka}????????????????#在do有值的情況下,輸出do的值。
Hello?World
$?unset?do
$?echo?${do=kaka}????????????????#在沒有do變量的情況下,或沒有值。輸出后面的值
kaka
$?echo?$do
kaka?????????????????????????????#并且把kaka賦給變量do。
比 - 多了一項功能,只要在變量,就會把kaka賦給do。
3.? ${變量+值}? ?里面是加號。$?echo?$do
Hello?World
$?echo?${do+kaka}??????????????#do有值的情況下,輸出kaka
kaka
$?unset?do
$?echo?${do+kaka}??????????????#在沒有do這個變量的情況下或者沒有值。那就沒有吧。
$?do=
$?echo?${do+kaka}??????????????#空值,輸出kaka
kaka
看樣子正好與 - 相反, 這個是變量有值則用后面的值,而 - 號是沒值則用后面的值。
4. ?${變量?值}$?echo?$do
Hello?World
$?echo?${do?kaka}
Hello?World
$?unset?do
$?echo?${do?kaka}??????????????#?看到了沒,在沒有do這個變量的情況下或者沒有值。
#?提示錯誤信息是?kaka
bash:?do:?kaka
$?do=
$?echo?${do?kaka}
除了沒有值的情況下會報錯,并且報錯信息是kaka外,就沒有別的了。
下面還是關于 - = + ? 的,不過變成了 :-? :=? :+? :??? 。
不一樣之處就是把空值給抹去了,從此以后空就真的空了, 空不再代表值而存在,
而是跟unset一樣。
這里說明一下, 以shell來說。其實unset就是把變量的內存空間的地址給撤銷了,
而變量空值,就是有變量的內存空間地址,不過內存空間里面沒有數據。
1.? ${變量:-值}$?echo?$do
Hello?World
$?echo?${do:-kaka}
Hello?World
$?unset?do
$?echo?${do:-kaka}???????????????#沒有do變量,同樣的相當于沒有值。?輸出kaka
kaka
$?do=
$?echo?${do:-kaka}????????????????#空不再代表值,?在do沒有值的情況下
#輸出kaka
kaka
怎么樣,區別只有一點, 空不再代表值了。
2. ${變量:=值}$?echo?$do
Hello?World
$?echo?${do:=kaka}
Hello?World
$?echo?$do
Hello?World
$?unset?do
$?echo?${do:=kaka}
kaka
$?echo?$do
kaka
$?do=
$?echo?${do:=kaka}??????????????????#空不再代表值,所以輸出kaka
kaka
$?echo?$do
kaka
還是那個意思,kaka輸出,并且賦值給了do。??? 空不再代表值了。
3. ${變量:+值}$?echo?$do
Hello?World
$?echo?${do:+kaka}????????????????#在do有值的情況下,輸出kaka
kaka
$?unset?do
$?echo?${do:+kaka}????????????????#在do不存在的時候,也就是沒有值。?輸出do的值,
#而do的值當然是不存在的,輸出空白行。
$?do=
$?echo?${do:+kaka}????????????????#do為空,空不再代表值。?沒有值就不會輸出后面的值。
#同樣的空白行。
+ 號是有值才會用后面的那個值的。 跟-號正好相反。
4. ${變量:?值}$?echo?$do
Hello?World
$?echo?${do:?kaka}
Hello?World
$?unset?do
$?echo?${do:?kaka}???????????????????#沒有do變量,當然沒有值,報kaka錯誤。
bash:?do:?kaka
$?do=
$?echo?${do:?kaka}???????????????????#do為空,代表沒有值。?報kaka錯誤。
bash:?do:?kaka
這個跟-號也差不多了, 只不過還里是輸出的錯誤信息。
good boy, nice girl.
總結
以上是生活随笔為你收集整理的linux变量最大长度,51CTO博客-专业IT技术博客创作平台-技术成就梦想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻仙手游维护公告服务器停服更新,寻仙手游
- 下一篇: ibatis 数据库获取不到 java_