linux - 带有括号的 Bash for 循环在 linux 中工作,而不是在 Git Bash 中工作

标签 linux bash cygwin

我有一个简单的 bash 循环,它在 linux 中运行良好,而不是在基于 cygwin 的本地 Git Bash 中,在 Windows 中运行
我有这个 for 循环:

  #!/bin/bash

    for (i=2; i<4; ++i); do
        echo "dddd"
    done

在 Git Bash 中它给了我这个错误:

./test.sh: line 5: syntax error near unexpected token `newline'
./test.sh: line 5: ` done

linux 版的 bash

Amazon Linux 版本 20xx.0x 可用。 [user1 ~]$ bash --version GNU bash,版本 4.2.46(2)-release (x86_64-redhat-linux-gnu) 版权所有 (C) 2011 Free Software Foundation, Inc. 许可 GPLv3+:GNU GPL 版本 3 或更高版本

Git bash 版本

GNU bash,版本 4.3.46(2)-release (i686-pc-msys) 版权所有 (C) 2013 Free Software Foundation, Inc. 许可 GPLv3+:GNU GPL 版本 3 或更高版本 http://gnu.org/licenses/gpl.html

这是免费软件;您可以自由更改和重新分发它。 在法律允许的范围内,不提供任何保证。

最佳答案

需要两个括号:

#!/bin/bash

for ((i=2; i<4; ++i)); do
    echo "dddd"
done

关于linux - 带有括号的 Bash for 循环在 linux 中工作,而不是在 Git Bash 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331291/

相关文章:

c++ - 从 C++ 代码将多行 bash 脚本作为字符串运行

bash - 如何在 cygwin 中发出命令来运行 Sublime Text?

linux - 监控linux中的nohup进程/将标准输出重定向到文件?

linux - 在 exec_python_func() 中执行 python 函数时出错

linux - 在 BASH shell 的文件中以另一个用户名执行多个命令

bash - 如何在不同行的多个模式匹配后替换第 n 行的单词?

linux - Bash:在其他脚本中运行脚本会引发错误我不会单独运行它们

linux - Rscript 会改变 LD_LIBRARY_PATH 吗?

windows - 将 Cygwin 应用程序作为 Windows 服务运行

regex - 当我尝试提取正则表达式的一部分时,为什么 sed 会失败?