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

"do"kabuk komut dosyası hatası Bu bir sözdizimi hatası veriyor

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

çalışma cezası Hem benim için. Dosyanızda bazı karakter kodlaması/satır beslemeleri olabileceğinden, vi yoluyla girmeyi deneyin. – dotalchemy

+0

Garip bir şekilde ilk denemeniz işe yaramaz. Belki senin bash bir küfür filtresi var :). İlkinin başarısız olduğu zaman bize verebileceğin başka bir bilgi var mı? –

cevap

15

Satır sonlarından şüpheleniyorum.

Dene:

hexdump -C yourscript.sh 

Ve 0d 0a dizileri arayın. Sen \r (0d) tr komutla şerit olabilir:

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

0d 0a dizilerini görüyorum, ancak bunları tr komutundan çıkarmak için sıra sizde işe yaramadı. Bu işe yaramadı ve şimdi iyi çalışıyor sonra vi kullanılır! teşekkürler – Jordan

+0

Sorun değil. Eğer betiği linux/unix kutunuza FTP ile yüklüyorsanız, ascii/text formatını seçebilir ve FTP sizin için satır sonu dönüşümünü halledecektir. Öte yandan, dosyayı başka bir şekilde oluşturuyorsanız, istenmeyen karakterler çıkarmak için iyi bir araçtır. –

1

vermektedir: Dosyanın beklenmedik ucunu

Ben de denedim ("do" bekliyor) Bu deneyin:

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

doğrultusunda mekanlara özellikle dikkat edin 'ise [gerçek]'

+0

Ah, whoops ... onu bana dövdüler. ;) – jwir3

İlgili konular