0
下面是讀取輸入的井號, 與字符'a'比較。 當它被調用時它工作正常。腳本來源時如果比較失敗
read -n 1 inp
if [ $inp = 'a' ]
then
echo "Hello"
fi
然而,來源時,它提供 錯誤:
parse error: condition expected: =
下面是讀取輸入的井號, 與字符'a'比較。 當它被調用時它工作正常。腳本來源時如果比較失敗
read -n 1 inp
if [ $inp = 'a' ]
then
echo "Hello"
fi
然而,來源時,它提供 錯誤:
parse error: condition expected: =
這是因爲你的腳本運行,從與zsh
,不bash
採購它。
源文件始終與執行採購的外殼一起運行,而不考慮shebang。您的腳本寫入bash
,與zsh
不兼容,因此失敗。
等效zsh
代碼:
read -k 1 inp
if [ "$inp" = 'a' ]
then
echo "Hello"
fi
我應該提到我使用zsh :)。謝謝。 – Sandeep
附上你的變量在雙引號內的'[...]'。 – codeforester