日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash-shell高级编程-变量的赋值

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash-shell高级编程-变量的赋值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

變量的賦值

=

賦值操作(前后都不能有空白)

注意:因為=和-eq都可以用作條件測試操作,所以不要與這里的賦值操作相混淆。

=既可以用作條件測試操作,也可以用于賦值操作,這需要視具體上下文而定

簡單的變量賦值

#!/bin/bash # "裸體"變量 echo # 變量什么時候是"裸體"的, 比如前邊少了$的時候? # 當它被賦值的時候, 而不是被引用的時候. # 賦值 a=879 echo "The value of \"a\" is $a." # 使用'let'賦值 let a=16+5 echo "The value of \"a\" is now $a." echo # 在'for'循環中(事實上, 這是一種偽賦值): echo -n "Values of \"a\" in the loop are: " for a in 7 8 9 11 doecho -n "$a " done echo echo # 使用'read'命令進行賦值(這也是一種賦值的類型): echo -n "Enter \"a\" " read a echo "The value of \"a\" is now $a." echoexit 0

簡單又不簡單的的兩種類型的變量賦值

#!/bin/bash a=23 # 簡單的賦值 echo $a b=$a echo $b # 現在讓我們來點小變化(命令替換). a=`echo Hello!` # 把'echo'命令的結果傳給變量'a' echo $a # 注意, 如果在一個#+的命令替換結構中包含一個(!)的話, #+ 那么在命令行下將無法工作. #+ 因為這觸發了Bash的"歷史機制." # 但是, 在腳本中使用的話, 歷史功能是被禁用的, 所以就能夠正常的運行. a=`ls -l` echo $a echo echo "$a" exit 0

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

# From /etc/rc.d/rc.local R=$(cat /etc/redhat-release) arch=$(uname -m)

bash變量是不區分類型的

不像其他程序語言一樣,bash并不區分變量的類型,本質上bash變量都是字符串。實際的作用依賴于上下文,Bash也允許比較操作和整數操作,其中的關鍵因素就是,變量中的值是否只有數值。

#!/bin/bash # int-or-string.sh: 整型還是字符串?a=2334 #整型. let "a += 1" echo "a = $a " # a = 2335 echo # 還是整型. b=${a/23/BB} # 將"23"替換成"BB". # 這將把變量b從整型變為字符串. echo "b = $b" # b = BB35 declare -i b # 即使使用declare命令也不會對此有任何幫助. echo "b = $b" # b = BB35 let "b += 1" # BB35 + 1 = echo "b = $b" # b = 1 echo c=BB34 echo "c = $c" # c = BB34 d=${c/BB/23} # 將"BB"替換成"23". # 這使得變量$d變為一個整形. echo "d = $d" # d = 2334 let "d += 1" # 2334 + 1 = echo "d = $d" # d = 2335 echo# null變量會如何呢? e="" echo "e = $e" # e = let "e += 1" # 算術操作允許一個null變量? echo "e = $e" # e = 1 echo # null變量將被轉換成一個整型變量.# 如果沒有聲明變量會怎樣? echo "f = $f" # f = let "f += 1" # 算術操作能通過么? echo "f = $f" # f = 1 echo # 未聲明的變量將轉換成一個整型變量. # 所以說Bash中的變量都是不區分類型的. exit 0

不區分變量的類型既是幸運的事情也是悲慘的事情. 它允許你在編寫腳本的時候更加的靈活(但是也足
夠把你搞暈!), 并且可以讓你能夠更容易的編寫代碼. 然而, 這也很容易產生錯誤, 并且讓你養成糟糕
的編程習慣.

這樣的話, 程序員就承擔了區分腳本中變量類型的責任. Bash是不會為你區分變量類型的

總結

以上是生活随笔為你收集整理的bash-shell高级编程-变量的赋值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。