Linux Shell Bash 變數賦值中”$()”的作用

來源:互聯網
上載者:User

轉載:http://www.360doc.com/content/10/0303/16/155970_17438894.shtml

例子 4-2. 簡單的變數賦值

  1 #!/bin/bash  2 # "裸體"變數  3   4 echo  5   6 # 變數什麼時候是"裸體"的, 比如前邊少了$的時候?  7 # 當它被賦值的時候, 而不是被引用的時候.  8   9 # 賦值 10 a=879 11 echo "The value of \"a\" is $a." 12  13 # 使用'let'賦值 14 let a=16+5 15 echo "The value of \"a\" is now $a." 16  17 echo 18  19 # 在'for'迴圈中(事實上, 這是一種偽賦值): 20 echo -n "Values of \"a\" in the loop are: " 21 for a in 7 8 9 11 22 do 23   echo -n "$a " 24 done 25  26 echo 27 echo 28  29 # 使用'read'命令進行賦值(這也是一種賦值的類型): 30 echo -n "Enter \"a\" " 31 read a 32 echo "The value of \"a\" is now $a." 33  34 echo 35  36 exit 0

例子 4-3. 簡單和複雜, 兩種類型的變數賦值

  1 #!/bin/bash  2   3 a=23              # 簡單的賦值  4 echo $a  5 b=$a  6 echo $b  7   8 # 現在讓我們來點小變化(命令替換).  9  10 a=`echo Hello!`   # 把'echo'命令的結果傳給變數'a' 11 echo $a 12 #  注意, 如果在一個#+的命令替換結構中包含一個(!)的話,  13 #+ 那麼在命令列下將無法工作. 14 #+ 因為這觸發了Bash的"曆史機制." 15 #  但是, 在指令碼中使用的話, 曆史功能是被禁用的, 所以就能夠正常的運行. 16  17 a=`ls -l`         # 把'ls -l'的結果賦值給'a' 18 echo $a           # 然而, 如果沒有引號的話將會刪除ls結果中多餘的tab和分行符號. 19 echo 20 echo "$a"         # 如果加上引號的話, 那麼就會保留ls結果中的空白符. 21                   # (具體請參閱"引用"的相關章節.) 22  23 exit 0

使用$(...)機制來進行變數賦值(這是一種比後置引用(反引號`)更新的一種方法).事實上這兩種方法都是命令替換的一種形式.

  1 # From /etc/rc.d/rc.local  2 R=$(cat /etc/redhat-release)  3 arch=$(uname -m)
相關文章

聯繫我們

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