1.變數替換:
bash shell可以進行變數的條件替換,既只有某種條件發生時才進行替換,替換
條件放在{}中.
(1) $
當變數未定義或者值為空時,返回值為word的內容,否則返回變數的值.
(2) $
與前者類似,只是若變數未定義或者值為空時,在返回word的值的同時將
word賦值給value
(3) $
若變數以賦值的話,正常替換.否則將訊息message送到標準錯誤輸出(若
此替換出現在shell程式中,那麼該程式將終止執行)
(4) $
若變數以賦值的話,其值才用word替換,否則不進行任何替換
(5) $
$從變數中提取子串,這裡offset和length可以是算術表示式.
(6) $
變數的字元個數
(7) $
$去掉value中與pattern相匹配的部分,條件是value的開頭與pattern相匹配
#與##的區別在於乙個是最短匹配模式,乙個是最長匹配模式.
(8) $
$於(7)類似,只是是從value的尾部於pattern相匹配,%與%%的區別與#與##一樣
(9) $
$進行變數內容的替換,把與pattern匹配的部分替換為string的內容,/與//的區
別與上同
注意:上述條件變數替換中,除(2)外,其餘均不影響變數本身的值
2.變數的算術運算
在bash shell中,只能進行兩個整數間的運算,其結果仍為整數.要進行算術
運算,需要使用let命令,語法為:
let expr
expr是乙個包含項和操作符的表示式,項可以是乙個變數或是乙個整數常數,
當使用整數常數時,其預設為十進位制整數,使用者可以用radio#number來指定其它
形式的整數,其中radio定義了整數是幾進製表示的,number是該整數的值.若
radio>10,那麼數字字元可從0-9和a-z.
在表示式中支援的操作符及其含義為:
+,-,*,/,% 加,減,乘,除,取模
>>,<<,&,^,| 左移,右移,位與,位異或,位或
?: 三元運算子.與c語言中的定義一致
~ 取補碼
!,>=,<=,>,<,==,!=,&&,||
=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
表示式式中也可以使用括號.括號或運算優先順序的定義與一般計算機語言中的
相同.let命令具有返回值.當計算結果(若有多個表示式時,以最後乙個為準)為0時,返回值為1,否則為0.
當表示式中含有shell的特殊字元(如|)時,需要用引用符('或")將其引用起來.
使用let時還需要注意的時,對於let x+y這樣的式子,shell雖然計算了x+y的值但卻將結果丟棄,
若不想這樣,可以使用let sum=x+y將x+y的結果儲存在變數sum中
另外還可以使用((和))操作符取代let命令,而且這樣的話,還可以省去對算術
表示式的引用,如果想返回表示式的值,則需用$(())的格式.
bash中的變數
bash變數型別 環境變數 本地變數 區域性變數 位置變數 特殊變數 內建 本地變數 varname value 作用域為整個bash程序可以使用 變數命名規範 1.只能含字母 數字和下劃線,並且以字母和下劃線開頭 2.最好不要跟系統已有的環境變數重名 3.見名知意 區域性變數 local varn...
bash中變數的巧用
鳥哥的私房菜 可以用乙個變數來代替長串的目錄,這樣即好記,也提高了效率。引用如下 若你有乙個常去的工作目錄名稱為 cluster server work taiwan 2005 003 如何 進行該目錄的簡化?答 在一般的情況下,如果你想要進入上述該目錄得要 cd cluster server wo...
Bash中變數的討論
變數不管是在哪種開發語言中,都占有著舉足輕重的位置,可以使我們的指令碼更加靈活,也能提高其遷移性。對於變數的設定規範有了通透的了解之後,既能避免不必要的錯誤,也能保證指令碼撰寫的效率。因為往往一些莫名其妙的報錯,都是由於不規範的變數設定引起的,左查右查,最終查出是由於書寫不規範引起的,往往會氣的發笑...