[root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local[root@test-1 ~]# echo $file1 $file2
/etc/services /etc/rc.local
[root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
0#若串長度不為0則真。因$file未定義長度為0,所以為假(0)
[root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
1#若串長度為0則真。因$file未定義長度為0,所以為真(1)
[root@test-1 ~]# [ -n "$file1" ] && echo 1 ||echo 0
1#若串長度不為0則真。因$file已定義變數長度不為0,所以為真(1)
[root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
0#若串長度為0則真。因$file已定義變數長度不為0,所以為假(0)
[root@test-1 ~]# [ -n $file ] && echo 1 ||echo 0
1[root@test-1 ~]# [ -z $file1 ] && echo 1 ||echo 0
0
範例2(生產):系統指令碼/etc/init.d/nfs字串測試的應用:
# remote quota server[ -z "$rquotad" ] && rquotad=`type -path rpc.rquotad`
[ -z "$mountd_nfs_v2" ] && mountd_nfs_v2=default
[ -z "$mountd_nfs_v3" ] && mountd_nfs_v3=default
# number of servers to be started by default
[ -z "$rpcnfsdcount" ] && rpcnfsdcount=8
[ -n "$nlm_grace_period" ] &&
範例3:多條件字串測試:
[root@test-1 ~]# file1=/etc/services;file2=/etc/rc.local[root@test-1 ~]# echo $file1 $file2
/etc/services /etc/rc.local
[root@test-1 ~]# [ -n "$file" ] && echo 1 ||echo 0
0#若串長度不為0則真。因$file未定義長度為0,所以為假(0)
[root@test-1 ~]# [ -z "$file" ] && echo 1 ||echo 0
1#若串長度為0則真。因$file未定義長度為0,所以為真(1)
[root@test-1 ~]# [ -z "$file1" ] && echo 1 ||echo 0
0[root@test-1 ~]# [ -z "$file1" -a -z "file2" ] && echo 1 ||echo 0
0[root@test-1 ~]# [[ -z "$file1" && -z "file2" ]] && echo 1 ||echo 0
0[root@test-1 ~]# [[ -z "$file1" || -n "file2" ]] && echo 1 ||echo 0
1[root@test-1 ~]# [ -z "$file1" -o -z "file2" ] && echo 1 ||echo 0
0[root@test-1 ~]# [ -n "$file1" -o -z "file2" ] && echo 1 ||echo 0
1[root@test-1 ~]# [ "$file1" == "file2" ] && echo 1 ||echo 0
0[root@test-1 ~]# [ "$file1" = "file2" ] && echo 1 ||echo 0
0[root@test-1 ~]# [ "$file1" !== "file2" ] && echo 1 ||echo 0
-bash: [: !==: binary operator expected
0[root@test-1 ~]# [ "$file1" != "file2" ] && echo 1 ||echo 0
1[root@test-1 ~]# [ ! "$file1" == "file2" ] && echo 1 ||echo 0
1[root@test-1 ~]# [ ! "$file1" \> "file2" ] && echo 1 ||echo 0
1[root@test-1 ~]# [ ! "$file1" \< "file2" ] && echo 1 ||echo 0
0[root@test-1 ~]# [ ! "$" \< "$" ] && echo 1 ||echo 0
1
Shell 字串操作符例項
表示式 含義 parameter變數未宣告,取預設值word parameter變數未宣告或值為空時,取預設值word parameter變數未宣告,則取預設值word parameter變數未宣告或值為空時,取預設值word parameter變數未宣告,取值為空,否則取值為word parame...
shell 字串及整數操作符講解與多實踐
1.字串測試操作符 字串測試操作符的作用 比較兩個字串是否相同 字串長度是否為零,字串是否為null 注 bash區分零長度字串和空字串 等。比較兩個字串是否相同,與 等價,如if a b 其中 a這樣的變數最好用 括起來,因為如果中間有空格,等符號就可能出錯了,當然更好的方法就是 比較兩個字串是否...
操作符 字串操作符 和 型別轉換操作符
一 字串操作符 對於 的使用,當所有值都是數字的時候,執行計算處理 當有乙個是字元型別的時候,就將數字轉換為string字串進行拼接處理。二 型別轉換操作符 public class text 結果 int above 0.7 0 math.round above 0.7 1 int below 0...