shell變量的進階操作執行個體
<a href="https://s2.51cto.com/wyfs02/M00/9F/73/wKioL1mdFw6Q9HRzAAAa4JWan34154.png" target="_blank"></a>
1 字元串切片
格式:${variable:start:length}
作用:切取變量中指定長度的字元串,并指定起始位置。
<code>name=</code><code>"michael hu"</code>
<code>echo</code> <code>${name:2:3}</code>
<code>cha</code>
2 計算字元串的長度
格式1:${#:variable}
格式2:expr length "$variable"
<code>[root@python ~]</code><code># echo ${#name}</code>
<code>10</code>
<code>[root@python ~]</code><code># expr length "$name"</code>
3 删除變量中指定的樣式
格式1:${variable#style}
作用:由左邊開始,删除第一個比對到的樣式
<code>filename=</code><code>"/usr/sbin/ntpdate"</code>
<code>echo</code> <code>${filename</code><code>#/*/}</code>
<code>sbin</code><code>/ntpdate</code>
格式2: ${variale##style}
作用:由左開始,比對整個字元串中的樣式,删除比對到最長的樣式
<code>echo</code> <code>${filename</code><code>##/*/}</code>
<code>ntpdate</code>
格式3:${variale%style}
作用:由右邊開始,删除第一個比對到的樣式
<code>echo</code> <code>${filename%/*}</code>
<code>/usr/sbin</code>
格式4: ${variable%%style}
作用:由右邊開始,比對整個字元串中的樣式,删除比對到的最長的字元串
<code>domainname=</code><code>"www.huwho.com"</code>
<code>echo</code> <code>${domainname%%.*}</code>
<code>www</code>
4 替換變量中字元串
格式1:${variable/style/replace}
作用:替換第一個比對到的字元串
<code>echo</code> <code>${name</code><code>/michael/neo</code><code>}</code>
<code>neo hu</code>
格式2: ${variable//style/replace}
作用:替換比對到的全部字元串
<code>name=</code><code>"michael michael hu"</code>
<code>echo</code> <code>${name</code><code>//michael/sternberg</code><code>}</code>
<code>sternberg sternberg hu</code>
5 删除變量中的字元串
格式1:${variable/style/}
作用:自左比對,删除第一個比對到的字元串
<code>echo</code> <code>${name</code><code>/michael/</code><code>}</code>
<code>michael hu</code>
格式2:${variable//style/}
作用:删除比對到的所有字元串
<code>echo</code> <code>${name</code><code>//michael/</code><code>}</code>
<code>hu</code>
6 測試存在性及空值
格式1:${test_variable-value}
作用:若變量不存在,則符合判斷,傳回預設值
<code>[root@python ~]</code><code># unset name</code>
<code>[root@python ~]</code><code># echo ${name-"kong"}</code>
<code>kong</code>
格式2: ${test_variable:=value}
作用:若變量不存在或其值為空,則符合判斷,傳回預設值
<code>[root@python ~]</code><code># test=""</code>
<code>[root@python ~]</code><code># echo ${test:="true_kong"}</code>
<code>true_kong</code>
格式3:${test_variable:?"message"}
作用:測試變量是否為空或不存在,提示錯誤資訊
<code>[root@python ~]</code><code># echo ${test:?"sorry empty"}</code>
<code>-</code><code>bash</code><code>: </code><code>test</code><code>: sorry empty</code>
格式4:${test_variable:+"mesage"}
作用:測試變量是否存在且非空,則符合判斷條件
<code>[root@python ~]</code><code># test="funy"</code>
<code>[root@python ~]</code><code># echo ${test:+"true"}</code>
<code>true</code>
<code></code>
本文轉自 PowerMichael 51CTO部落格,原文連結:http://blog.51cto.com/huwho/1958626,如需轉載請自行聯系原作者