Windows 10 Ubuntu Shell中的Bash脚本

时间:2017-10-11 16:02:58

标签: windows bash

我正在尝试编写一个相对简单的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脚本犯了一些令人难以置信的愚蠢错误?

1 个答案:

答案 0 :(得分:0)

bash是一种非常对空白敏感的语言。 [不仅仅是语法,它是命令的名称。在bash提示符下,输入help [以阅读更多内容。 shell使用空格将命令与参数分开。

使用此:

while [ $COUNTER -le 10 ] ; do

此外,请确保文件未使用DOS样式的行结尾保存。语法错误可能是您的脚本显示带有回车符的done\r。使用file cfish.sh进行检查并确认您没有得到答案" ASCII文本,使用CRLF行终止符"。如果您这样做,请使用dos2unix cfish.sh进行修复,并相应地配置您的编辑器。