shell筆記之變數

來源:互聯網
上載者:User


shell筆記之變數 Shell代碼  #!/bin/bash    # #開頭的行注釋  # shell指令碼的第一行一般都是#!/bin/bash 表示由/bin/bash負責解釋   www.2cto.com  # 定義變數  str="string value"  num=123  echo str is :\"$str\"  echo num\'s value is: $num    # 注意:  # 1、"="兩邊沒有空格,任何空格會導致錯誤。  # 2、雖然在定義一個字時可以省略引號,但是當定義的變數值多於一個字時(包含空格或定位字元),引號是必須的。  # 3、雖然通常可以使用雙引號,但可能導致錯誤。使用單引號禁用了成為擴充的bash特性      www.2cto.com  # 參數變數(用單引號禁止來擴充)  # $0 表示執行的命令本身,如此指令碼是 env.sh  # $1 表示第一個參數, $2表示第二個參數,如此類推;  # $@ 表示一次引用所有的變數,它擴充成所有用空格分隔開的命令列參數;  # $# 表示傳遞給指令碼的變數數目;  echo '$0 is ' $0  echo '$1 is ' $1  echo '$2 is ' $2  echo '$3 is ' $3  echo '$# is ' $#  echo '$@ is ' $@    # 環境變數,使用export命令設定,使用unset取消  export editor=vim  unset editor    # 變數預設值  # ${parameter:-word} 如果parameter沒有設定或者為空白,則shell擴充word並替換結果。parameter的值並沒有更改。    # ${parameter:=word} 如果parameter沒有設定或者為空白,則shell擴充word並將結果指派給parameter。這個值然後被替換。不能用這種方式指派位置參數或特殊參數的值。    # ${parameter:?word} 如果parameter沒有設定或者為空白,shell擴充word並將結果寫入標準錯誤中。如果沒有word則寫入一條訊息。如果shell不是互動的,則表示存在這個擴充。    # ${parameter:+word} 如果parameter沒有設定或者為空白,則不作替換      www.2cto.com  unset x  y="abc def"  echo "/${x:-'xyz'} /${y:-'xyz'} /$x /$y/"    unset x  y="abc def"  echo "/${x:='xyz'} /${y:-'xyz'} /$x /$y/"  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.