2017-03-01 45 views
0

下面是讀取輸入的井號, 與字符'a'比較。 當它被調用時它工作正常。腳本來源時如果比較失敗

read -n 1 inp 
if [ $inp = 'a' ] 
then 
    echo "Hello" 
fi 

然而,來源時,它提供 錯誤:

parse error: condition expected: = 
+0

附上你的變量在雙引號內的'[...]'。 – codeforester

回答

2

這是因爲你的腳本運行,從與zsh,不bash採購它。

源文件始終與執行採購的外殼一起運行,而不考慮shebang。您的腳本寫入bash,與zsh不兼容,因此失敗。

等效zsh代碼:

read -k 1 inp 
if [ "$inp" = 'a' ] 
then 
    echo "Hello" 
fi 
+0

我應該提到我使用zsh :)。謝謝。 – Sandeep