我正在尝试编写一个相对简单的bash代码。我在Windows 10上的Ubuntu Shell中工作。这是代码:
#!/bin/bash
COUNTER=1
while [$COUNTER -le 10] ; do
echo $COUNTER
let COUNTER=COUNTER+1
done
非常简单,但无论我如何调整格式(即在下一行而不是标签等),我都会遇到以下两个错误:
./cfish.sh: line 6: syntax error near unexpected token `done'
./cfish.sh: line 6: `done'
作为免责声明,我对bash脚本没有太多经验。但是,我很确定这个简单的东西是正确的,并且因此想知道我得到的错误是否是在Windows 10中使用Ubuntu Shell的副产品。
有没有人遇到过类似的问题,或者有人发现我使用我的bash脚本犯了一些令人难以置信的愚蠢错误?
答案 0 :(得分:0)
bash是一种非常对空白敏感的语言。 [
不仅仅是语法,它是命令的名称。在bash提示符下,输入help [
以阅读更多内容。 shell使用空格将命令与参数分开。
使用此:
while [ $COUNTER -le 10 ] ; do
此外,请确保文件未使用DOS样式的行结尾保存。语法错误可能是您的脚本显示带有回车符的done\r
。使用file cfish.sh
进行检查并确认您没有得到答案" ASCII文本,使用CRLF行终止符"。如果您这样做,请使用dos2unix cfish.sh
进行修复,并相应地配置您的编辑器。