shell脚本错误期待 “做”

问题描述:

#!/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

我怀疑行结束。

尝试:

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

给这是一个尝试:

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

请特别注意在该行的空间“而[真]”

+0

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