2016-08-26 100 views
1

IM這個真正的小白,對不起,如果這是一個愚蠢的問題整數表達式預期的錯誤

繼承人的代碼

(第一行是行#259的夾子,最後一行是# 263)

if [ $col -le 6 ] 
then 
echo -e "\t\t\033[91;4m 
$paragraph\033[0m" 
elif ! [ $col -le 12 ] 

當我運行它,這是我所得到的,當我運行它

./checker.sh: line 259: [: .",: integer expression expected 
./checker.sh: line 263: [: .",: integer expression expected 

當我看到這個錯誤,它說確保支架和支架之間有一個空間。我不知道還有什麼要做。

+0

檢查'$ col'的價值。它幾乎肯定不是你期望的。 (實際上,它會顯示爲'。\「,''不知何故。 –

+0

在腳本中可能出現[預期的整數表達式錯誤]重複(http://stackoverflow.com/questions/21716389/error-integer-表達式預期在腳本) – tripleee

回答

1

如果您研究如何閱讀它們,錯誤消息是信息性的。

讓我們來看三個例子:

$ col="1"; [ $col -le 6 ] 
$ col=""; [ $col -le 6 ] 
bash: [: -le: unary operator expected 
$ col="a"; [ $col -le 6 ] 
bash: [: a: integer expression expected 

這三者中,你所獲得的信息:「整數表達式預期」。這意味着你的col不是一個整數。

重現您看到消息,我們設置col=' .",'

$ col=' .",'; [ $col -le 6 ] 
bash: [: .",: integer expression expected 
+0

這只是腳本的部分給我的錯誤。它會幫助,如果我把整個腳本? – Fish

+0

你可以尋找設置'col'的值的部分。如果不清楚它在哪裏,那麼運行'bash -x checker.sh'。這將產生大量的診斷輸出。在輸出中搜索'col'設置的位置,並查找它爲什麼設置錯誤值 – John1024

+0

col =()這意味着如果我是正確的,它就沒有任何設置 – Fish