Shell-Script
Bash - 需要整數表達式
我正在檢查我的主題的更新腳本
我有 2 個文本文件。第一個稱為“current.txt”,包含目前版本。該文本文件中有
4.1.1
字元串。第二個稱為“latest.txt”,包含最新版本。
4.2
此文本文件中有字元串。所以這裡是程式碼
echo "Checking update"; x=$(cat ./current.txt) y=$(cat ./latest.txt) if [ "$x" -eq "$y" ] then echo There is version $y update else echo Version $x is the latest version fi
這意味著如果 current.txt 與 latest.txt 不同,那麼它會說“有版本 4.2 更新”。如果不是,它會說“版本 4.1.1 是最新版本”
但是當我嘗試執行它時。我收到這個錯誤
Checking update ./test.sh: line 4: [: 4.1.1: integer expression expected Version 4.1.1 is the latest version
那麼我在做什麼錯呢?
該
test
命令也稱為[
,具有用於字元串比較和整數比較的單獨運算符:整數 1 -eq 整數 2
INTEGER1 等於 INTEGER2
對比
字元串 1 = 字元串 2
字元串相等
和
字元串 1 != 字元串 2
字元串不相等
由於您的數據不是嚴格意義上的整數,因此您的測試需要使用字元串比較運算符。評論中的最後一個認識是“-eq”邏輯與 if/else 語句的含義不匹配
echo
,因此新的程式碼段應該是:... if [ "$x" != "$y" ] then echo There is version $y update else echo Version $x is the latest version fi