shell中字元串比較和模糊比較說明

  • 2020 年 1 月 30 日
  • 筆記

shell字元串比較說明

1 完全比較方法(完全匹配)

if [ "$soure" == "$dest" ]; then

    echo "is =="

else

    echo "is !="

fi

if語句中的==判斷字元串是否相等:

    1、使用完全匹配方式;

    2、兩邊的雙引號都是可有可無的,但當字元串為空的時候就會報錯,提示unary operator expected,因此,需要加入雙引號;

    3、也可以使用=號,但==更合適一些,防止誤解,避免誤認為是在進行賦值操作。

2 模糊比較方法(正則表達式)

if [[ "$soure" == dest* ]]; then

    echo "is =="

else

    echo "is !="

fi

當if語句中的單中括弧[]變成雙中括弧[[]]時,支援模糊匹配,此時:

    1、模糊匹配規則不能添加雙引號,否則無效,會被當做普通字元串進行比較。

    2、被比較的字元串,可以加雙引號,也可以不加,當字元串為空也不會報錯,但是為了統一規範,防止遺漏,因此,推薦還是加入雙引號。