2011-03-30 100 views
8
#!/bin/sh 
while true ; do 
echo "WTF" 
done 

這是給一個語法錯誤: 語法錯誤:意外的文件結束(預計 「做」)shell腳本錯誤期待 「做」

我也試過:

#!/bin/sh 
while : 
do 
echo "WTF" 
done 
+0

這兩個工作對我罰款。嘗試通過vi輸入它,因爲它可能最終會成爲腳本中的一些字符編碼/換行符。 – dotalchemy 2011-03-30 20:06:14

+0

奇怪的是你的第一次嘗試爲我找到。也許你的bash有一個褻瀆過濾器:)。您第一次失敗時可以提供的其他任何信息? – 2011-03-30 20:08:13

回答

15

我懷疑行結束。

嘗試:

hexdump -C yourscript.sh 

,尋找0d 0a序列。您可以剝離與tr命令\r0d):

cat yourscript.sh | tr -d '\r' >> yournewscript.sh 
+1

我看到了0d 0a序列,但是你的行用tr命令去除它們並不適合我。之後我使用vi並沒有工作,現在它工作的很好!謝謝 – Jordan 2011-03-30 21:17:17

+0

沒問題。如果您通過FTP將腳本上傳到您的linux/unix盒,您可以選擇ascii/text格式,並且FTP將爲您處理行結束轉換。另一方面,如果您以其他方式創建文件,則tr是剝離不需要的字符的好工具。 – 2011-03-30 21:28:12

1

給這是一個嘗試:

#!/bin/sh 
while [ true ] 
do 
    echo "WTF" 
done 

請特別注意在該行的空間「而[真]」

+0

啊,哎呀......打敗了我。 ;) – jwir3 2011-03-30 20:08:27