Unix/Linux - Shell 字串運算子示例



以下字串運算子受 Bourne Shell 支援。

假設變數a儲存“abc”,變數b儲存“efg”,則 -

運算子 描述 示例
= 檢查兩個運算元的值是否相等;如果相等,則條件為真。 [ $a = $b ] 不為真。
!= 檢查兩個運算元的值是否相等;如果值不相等,則條件為真。 [ $a != $b ] 為真。
-z 檢查給定字串運算元的大小是否為零;如果長度為零,則返回真。 [ -z $a ] 不為真。
-n 檢查給定字串運算元的大小是否不為零;如果長度不為零,則返回真。 [ -n $a ] 不為假。
str 檢查str是否不是空字串;如果為空,則返回假。 [ $a ] 不為假。

示例

以下是一個使用所有字串運算子的示例 -

#!/bin/sh

a="abc"
b="efg"

if [ $a = $b ]
then
   echo "$a = $b : a is equal to b"
else
   echo "$a = $b: a is not equal to b"
fi

if [ $a != $b ]
then
   echo "$a != $b : a is not equal to b"
else
   echo "$a != $b: a is equal to b"
fi

if [ -z $a ]
then
   echo "-z $a : string length is zero"
else
   echo "-z $a : string length is not zero"
fi

if [ -n $a ]
then
   echo "-n $a : string length is not zero"
else
   echo "-n $a : string length is zero"
fi

if [ $a ]
then
   echo "$a : string is not empty"
else
   echo "$a : string is empty"
fi

以上指令碼將生成以下結果 -

abc = efg: a is not equal to b
abc != efg : a is not equal to b
-z abc : string length is not zero
-n abc : string length is not zero
abc : string is not empty

使用運算子時需要考慮以下幾點 -

  • 運算子和表示式之間必須有空格。例如,2+2 不正確。應寫成 2 + 2。

  • if...then...else...fi 語句是決策語句,將在下一章中解釋。

unix-basic-operators.htm
廣告