我想比較Hello World
到hello world
。結果應該是真實的,就好像它們是平等的。我做:比較字符串不區分大小寫
while read line; do
newLine="$newLine$line"
done < $1
newp="Hello World"
if ((${newp,,}==${newLine,,})); then
echo "true"
else
echo "false"
fi
當我通過包括一個文本文件:
#filename: file.txt
hello world
輸出似乎是:
./testScript.txt: line 20: 0à»: hello world==hello world : syntax error in expression (error token is "world==hello world ")
+ echo false
我在做什麼錯在這裏?此外,有點無關,有沒有辦法將file.txt
中的行傳遞給一個字符串(newLine),而沒有這樣做while
我已經完成了?
'((a == b))'是數學和數字。 '[[「$ a」=「$ b」]]'用於字符串。空格不是可選的。 –
即使你得到了你的具體問題的答案,周圍的循環意味着任何測試都會說'x \ y'匹配'xy'並且可以有其他錯誤的[錯誤]匹配。請參閱[爲什麼要使用shell循環處理文本被認爲是壞習慣](http://unix.stackexchange.com/questions/169716/why-is-using-a-shell -loop到過程文本視爲壞實踐)。 –
您可以使用帶'hello world'風格的'grep -v'來測試其他風格。 – boardrider