shell 變數賦值和替換

來源:互聯網
上載者:User

  1 #!/bin/bash  2   3 # 變數賦值和替換  4   5 a=375  6 hello=$a  7   8 #-------------------------------------------------------------------------  9 # 強烈注意, 在賦值的的時候, 等號前後一定不要有空格. 10 # 如果出現空格會怎麼樣? 11  12 #  "VARIABLE =value" 13 #           ^ 14 #% 指令碼將嘗試運行一個"VARIABLE"的命令, 帶著一個"=value"參數. 15  16 #  "VARIABLE= value" 17 #            ^ 18 #% 指令碼將嘗試運行一個"value"的命令,  19 #+ 並且帶著一個被賦值成""的環境變數"VARIABLE".  20 #------------------------------------------------------------------------- 21  22  23 echo hello    # 沒有變數引用, 只是個hello字串. 24  25 echo $hello 26 echo ${hello} # 同上. 27  28 echo "$hello" 29 echo "${hello}" 30  31 echo 32  33 hello="A B  C   D" 34 echo $hello   # A B C D 35 echo "$hello" # A B  C   D 36 # 就象你看到的echo $hello   和    echo "$hello"   將給出不同的結果. 37 # =============================================================== 38 # 引用一個變數將保留其中的空白, 當然, 如果是變數替換就不會保留了. 39 # =============================================================== 40  41 echo 42 echo '$hello'  # hello 43 echo '$hello'  # $hello 44 #    ^      ^ 45 #  全引用的作用將會導致"$"被解釋為單獨的字元, 46 #+ 而不是變數首碼.  47  48 # 注意這兩種引用所產生的不同的效果. 49  50  51 hello=    # 設定為空白值. 52 echo "\$hello (null value) = $hello" 53 #  注意設定一個變數為null, 與unset這個變數, 並不是一回事 54 #+ 雖然最終的結果相同(具體見下邊). 55  56 # -------------------------------------------------------------- 57  58 #  可以在同一行上設定多個變數,  59 #+ 但是必須以空白進行分隔. 60 #  慎用, 這麼做會降低可讀性, 並且不可移植. 61  62 var1=21  var2=22  var3=$V3 63 echo 64 echo "var1=$var1   var2=$var2   var3=$var3" 65  66 # 在老版本的"sh"上可能會引起問題. 67  68 # -------------------------------------------------------------- 69  70 echo; echo 71  72 numbers="one two three" 73 #           ^   ^ 74 other_numbers="1 2 3" 75 #               ^ ^ 76 #  如果在變數中存在空白, If there is whitespace embedded within a variable, 77 #+ 那麼就必須加上引用. 78 #  other_numbers=1 2 3                  # 給出一個錯誤訊息.  79 echo "numbers = $numbers" 80 echo "other_numbers = $other_numbers"   # other_numbers = 1 2 3 81 #  不過也可以採用將空白轉義的方法. 82 mixed_bag=2\ ---\ Whatever 83 #           ^    ^ 在轉義符後邊的空格(\). 84  85 echo "$mixed_bag"         # 2 --- Whatever 86  87 echo; echo 88  89 echo "uninitialized_variable = $uninitialized_variable" 90 # Uninitialized變數為null(就是沒有值).  91 uninitialized_variable=   #  聲明, 但是沒有初始化這個變數,  92                           #+ 其實和前邊設定為空白值的作用是一樣的.  93 echo "uninitialized_variable = $uninitialized_variable" 94                           # 還是一個空值. 95  96 uninitialized_variable=23       # 賦值. 97 unset uninitialized_variable    # Unset這個變數. 98 echo "uninitialized_variable = $uninitialized_variable" 99                                 # 還是一個空值.100 echo101 102 exit 0

相關文章

聯繫我們

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