shell [ ] 和 [[ ]] 區別


【參考文章】: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM