天天看點

shell變量的進階操作執行個體

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,如需轉載請自行聯系原作者