【參考文章】:shell if [[ ]]和[ ]區別 || &&
【參考文章】:Shell test 命令
1. [ ] 和 test
test 等同於 [ ]
可用於判斷某個條件是否為真。可用於 字符串,數值和文件的測試。
1.1 字符串
可使用的參數如下:
也可以使用 ==(等價於=)
示例:
read -p "str1:" str1 read -p "str2:" str2 # [ 后面和 ] 前面必須使用空格隔開 # = 兩端必須使用空格隔開 if [ "$str1" = "$str2" ] then echo "str1 == str2" else echo "str1 != str2" fi
1.2 數值
示例:
read -p "num1:" num1 read -p "num2:" num2 # [ 后面和 ] 前面必須使用空格隔開 # = 兩端必須使用空格隔開 if [ "$num1" -eq "$num2" ] then echo "num1 == num2" else echo "num1 != num2" fi if [ "$num1" -gt "$num2" ] then echo "num1 > num2" else echo "num1 <= num2" fi
3. 文件
示例:
read -p "輸入文件路徑:" filepath if [ -e $filepath ] then echo "文件存在" else echo "文件不存在" fi
2. [[ ]]
[[ ]] 比 [ ] 更強大
使用 =~ 操作符時, 支持 shell 的正則表達式
read -p "str1:" str1 str2=a{3} # [ 后面和 ] 前面必須使用空格隔開 # = 兩端必須使用空格隔開 if [[ ${str1} =~ ${str2} ]] then echo "str1 == str2" else echo "str1 != str2" fi