shell 字串及整數操作符講解與多實踐

2022-01-10 19:13:02 字數 1717 閱讀 8115

1. 字串測試操作符

字串測試操作符的作用:比較兩個字串是否相同、字串長度是否為零,字串是否為null(注:bash區分零長度字串和空字串)等。

「=」比較兩個字串是否相同,與==等價,如if[ "$a" = "$b" ],其中$a這樣的變數最好用""括起來,因為如果中間有空格,*等符號就可能出錯了,當然更好的方法就是[ "$" = "$" ]。"!=" 比較兩個字串是否相同,不同則為「是」。

在書寫測試表示式時,可以使用表1.3.1中的字串測試操作符。

表1.3.1中 字串測試操作符

特別注意:以上**中的字串測試操作符號務必要用" "引起來。

1 #這裡的結果邏輯不對,條件不成立,應該返回 0

[root@test-1 ~]# [ 2 \< 1 ] && echo 1 ||echo 0

0 #轉義後是正確的。

[root@test-1 ~]# [ 2 -gt 1 ] && echo 1 ||echo 0

1[root@test-1 ~]# [ 2 -lt 1 ] && echo 1 ||echo 0

0[root@test-1 ~]# [ 2 > 1 ] && echo 1 ||echo 0

1[root@test-1 ~]# [[ 2 > 1 ]] && echo 1 ||echo 0

1[root@test-1 ~]# [[ 2 < 1 ]] && echo 1 ||echo 0

0[root@test-1 ~]# [ 2 = 1 ] && echo 1 ||echo 0

0[root@test-1 ~]# [ 1 = 1 ] && echo 1 ||echo 0

1[root@test-1 ~]# [ 2 = 1 ] && echo 1 ||echo 0

0[root@test-1 ~]# [ 2 = 2 ] && echo 1 ||echo 0

1[root@test-1 ~]# [ 2 != 2 ] && echo 1 ||echo 0

0[root@test-1 ~]# [[ 2 -lt 1 ]] && echo 1 ||echo 0

0[root@test-1 ~]# [[ 2 -gt 1 ]] && echo 1 ||echo 0

1範例2:二元字元比較

[root@test-1 ~]# [ "a" > "bc" ] && echo 1 ||echo 0

1[root@test-1 ~]# [ "a" < "bc" ] && echo 1 ||echo 0

1 #上面兩個條件不一樣,但結果一樣,雖然沒報語法錯誤,但顯然不對。

[root@test-1 ~]# [ "a" \> "bc" ] && echo 1 ||echo 0

0[root@test-1 ~]# [ "a" \< "bc" ] && echo 1 ||echo 0

1#加上對比較的轉義後,邏輯上顯示正確了。

Shell 字串操作符例項

表示式 含義 parameter變數未宣告,取預設值word parameter變數未宣告或值為空時,取預設值word parameter變數未宣告,則取預設值word parameter變數未宣告或值為空時,取預設值word parameter變數未宣告,取值為空,否則取值為word parame...

操作符 字串操作符 和 型別轉換操作符

一 字串操作符 對於 的使用,當所有值都是數字的時候,執行計算處理 當有乙個是字元型別的時候,就將數字轉換為string字串進行拼接處理。二 型別轉換操作符 public class text 結果 int above 0.7 0 math.round above 0.7 1 int below 0...

SAP 字串操作符

操作符 說明co 操作字串1中每個字元都在操作字串2中存在,則表示式為true,反之為false.表示式為true時sy fdpos 操作字串1的長度,為false時,sy fdpos 操作字串1中不在操作字串2中的字元所在作字串1中第乙個位置。cn操作字串1中不是每個字元都在操作字串2中存在,則表...