在本小節中,我們將學習有關bash字串及其運算子的使用。
與其他程式設計語言一樣,Bash字串是一種資料型別,例如整數或浮點。它用於表示文字而不是數位。它是一組可能還包含數位的字元的組合。
例如,單詞yiibai
和短語Welcome to yiibai
都是字串。如果正確指定,甚至像01234
也可以視為字串。要求程式員將字串括在引號中,以便Bash將資料視為字串,而不是數位,變數名或陣列等之類的。
Bash由執行字串操作和操作它們的多種方式組成。以下是Shell指令碼中用於執行字串操作的一些運算子:
等於運算子(=
)用於檢查兩個字串是否相等。
語法
Operand1 = Operand2
範例
#!/bin/bash
#Script to check whether two strings are equal.
str1="xntutor.com"
str2="tw511.com"
if [ $str1 = $str2 ];
then
echo "Both the strings are equal."
else
echo "Strings are not equal."
fi
執行上面範例程式碼,得到以下結果:
Strings are not equal.
不等於運算子(!=
)用於定義字串不相等。
語法
Operand1 != Operand2
範例
#!/bin/bash
#Script to check whether two strings are equal.
str1="tw511.com"
str2="xntutor.com"
if [[ $str1 != $str2 ]];
then
echo "Strings are not equal."
else
echo "Strings are equal."
fi
執行上面範例程式碼,得到以下結果:
Strings are not equal.
「小於運算子(\<
)」是一個條件運算子,用於檢查string1
是否小於string2
。
語法
Operand1 \< Operand2
範例
#!/bin/sh
str1="tw511.com"
str2="xntutor.com"
if [ $str1 \< $str2 ];
then
echo "$str1 is less then $str2"
else
echo "$str1 is not less then $str2"
fi
執行上面範例程式碼,得到以下結果:
tw511.com is not less than xntutor.com
「大於運算子(\>
)」用於檢查string1
是否大於string2
。
語法
Operand1 \> Operand2
範例
#!/bin/sh
str1="xntutor.com"
str2="tw511.com"
if [ $str1 \> $str2 ];
then
echo "$str1 is greater then $str2"
else
echo "$str1 is less then $str2"
fi
執行上面範例程式碼,得到以下結果:
xntutor.com is greater then tw511.com
下面運算子-n
用於檢查字串是零還是大於零。
語法
[ -n Operand ]
範例
#!/bin/sh
str="WelcometoYiibai"
if [ -n $str ];
then
echo "String is not empty"
else
echo "String is empty"
fi
執行上面範例程式碼,得到以下結果:
String is not empty
此運算子用於檢查字串是否為空或等於零。
語法
[ -z Operand ]
範例
#!/bin/sh
str=""
if [ -z $str ];
then
echo "String is empty."
else
echo "String is non-empty."
fi
執行上面範例程式碼,得到以下結果:
String is empty