Linux進階變數

來源:互聯網
上載者:User

標籤:

進階變數
基本形式
   [1].變數擴充  格式  ${變數名稱}
   [2].命令擴充  格式  $(命令)
   [3].算術擴充  格式  $((算術式))
1.變數擴充
   基本形式:${變數名稱}
   變數擴充含義:一種簡易的條件判斷,對不同的條件賦予變數不同的值替換.它和變數存在與否的關係很大.
  1.1 測試變數是否存在的基本用法
      文法: ${待測變數-預設值}
      說明:若待測變數不存在則符合判斷條件,以傳回預設值作為處置.
      解析:若待測變數不存在則返回預設值,否則返回變數的值
      執行個體:
           unset a
           echo ${a-‘預設‘}  #輸出為‘預設‘
   1.2 測試變數不存在或其值為空白時傳回一個預設值
      文法:${待測變數:-預設值}
      執行個體:
           a=
           echo ${a:-‘預設‘} #輸出為‘預設‘
    1.3 測試變數不存在或其值為空白給變數賦予一個預設值
      文法:${待測變數:=預設值}
      執行個體:
           a=
           echo ${a:=‘預設‘}
           echo $a #輸出為2行‘預設‘
    1.4 測試變數不存在或其值為空白,輸出一個提示資訊
      文法:${待測變數:?提示資訊}
      執行個體:
           a=
           echo r={a:?提示資訊} #輸出"提示資訊"
    1.5 測試變數存在且為非空則返回真值
 
      文法:${待測變數:+真值}
      執行個體:
          a=hello
          echo ${a:+world} #輸出為"world"
    總結:
        符號     作用
         :       判斷變數是否為空白,若為空白則為真
         +       正向,判斷變數是否存在且不為空白,若存在且不為空白則為真
         -       反向,判斷變數是否不存在,若不存在則為空白
         =       賦值,
         ?       提示資訊
2.取字串切片,獲得字串長度
   2.1 取字串切片
       文法:
          [1].${變數:開始的位置索引}
               作用:截取從指定的位置開始到字串結束的所有字元,開始字元的索引為0
 
               執行個體:
               
                    str="hello world"
                    echo ${str:6} #輸出結果為"world"
  
          [2].${變數:起始位置:長度}
               作用:截取從指定的起始位置開始的指定長度的字串。
 
               執行個體:
                    str="hello world"
                    echo ${str:6:2} #輸出為"wo"
    2.2 計算字串長度
        文法:${#變數名稱}
        執行個體:
             str="hello world"
             echo ${#str} #輸出結果為11
3.對比樣式
    目的:截取變數值(字串)的某一個部分
    做法:將符合樣式的部分字串刪除或替換
    3.1 由字串前面開始對比刪除最短的相符者
             文法:${待測變數#樣式}
             說明:從待測變數的值的左邊開始對比,刪除最短符合樣式的字串
             執行個體:
 
                 filename="/usr/sbin/ntpdate"
                 echo ${filename#}  #顯示結果ntpdate
    3.3 由字串後面開始對比刪除最短的相符者
             文法:${待測變數%樣式}
             執行個體:
               filename="/usr/sbin/ntpdate"
               echo ${filename%/*} #輸出結果/usr/sbin
    3.4 由字串後面開始對比刪除最長的相符者
             文法:${待測變數%%樣式}
             執行個體:
               filename="hello/usr/sbin/ntpdate"
               echo ${filename%%/*} #輸出結果hello
  
4.替換或刪除部分字串
 
   4.1 只替換找到的第一個字串
        文法:${待測變數/樣式/替換}
        執行個體:
             str="hello hello"
             echo ${str/hello/world}  #結果為world hello
   4.2 替換找到的所有樣式字串
        文法:${待測變數//樣式/替換}
        執行個體:
             str="hello hello"
             echo ${str/hello/world}  #結果為world world
   4.3 刪除第一個指定的字串
        文法:${待測變數/要刪除的字串/}
        執行個體:
             str="hello hello"
             echo ${str/hello/}  #結果為hello
    4.4 刪除所有指定的字串
        文法:${待測變數//要刪除的變數/}
        執行個體:
             str="hello world hello"
             echo ${str//hello/} #輸出結果為world
5.命令擴充
    文法:$(命令)
    執行個體: time=$(date) 等價 time=`date`
6.算術擴充
    文法:$((算術))
    執行個體:
         echo "a=$((5*5))" #結果為a=25

Linux進階變數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.