2013-09-30 79 views
-3

所有重複我看的更遠(例如onetwothree)提出了一些廢話:循環而文件存在

while [ -f "toEvaluate.txt"] 
do 
    sleep 1 
done 

它產生

fitness.sh: line 22: [: missing `]' 

給我。我的bash不喜歡[ -f "toEvaluate.txt"]語法。哪裏不對?

+1

你指的是什麼「廢話」? – chepner

+0

請參考[這裏]建議的「廢話」(http://superuser.com/a/491100)。這個答案來自你提到的其中一個問題,**完全**回答你正面臨的問題。 – devnull

+0

我已經upvoted這個答案。但是,只有在得到答案之後,我才能理解它所說的內容。這個問題以非常骯髒的方式提出(名字/字符串在那裏很糟糕,任何睡眠都缺失,這會讓你認爲這是問題),錯誤的答案被接受(這表明'inotify'和'[[必須用來代替引號'''和']'之間的空格),而且,你所引用的答案是以if-存在而不是while-存在的方式表示的,這也使我分心,因此,每個人都必須接受我的問題作爲主要而不是倒退。 – Val

回答

6

[之間的空間, ]和附帶的參數很重要。你應該使用

while [ -f "toEvaluate.txt" ] 
    do 
    sleep 1 
    done 
7

語法錯誤:

應該是:

[ -f "toEvaluate.txt" ] 

括號前後需要空間 - 它們是bash的內置命令,一個 「字」 殼