shell 字串多操作符綜合實踐多案例

2022-01-10 19:13:01 字數 2474 閱讀 7141

[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...