Bash 带括号的 for 循环在 linux 而不是 Git Bash
Bash for loop with Parenthesis working in linux and not in Git Bash
我有简单的 bash 循环,它在 linux 中工作正常,而不是在本地 Git Bash 中,它基于 windows[= 中的 cygwin 30=]
我有这个 for 循环:
#!/bin/bash
for (i=2; i<4; ++i); do
echo "dddd"
done
in 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
将行结尾从 CRLF 更改为 LF。有很多方法可以做到这一点。您最喜欢的编辑器可能有一个选项可以更改行尾,也可以在保存文件时保留现有的行尾。
最简单的方法是使用 dos2unix
。要就地转换,请使用 dos2unix bashtest.sh
.
我有简单的 bash 循环,它在 linux 中工作正常,而不是在本地 Git Bash 中,它基于 windows[= 中的 cygwin 30=] 我有这个 for 循环:
#!/bin/bash
for (i=2; i<4; ++i); do
echo "dddd"
done
in 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
将行结尾从 CRLF 更改为 LF。有很多方法可以做到这一点。您最喜欢的编辑器可能有一个选项可以更改行尾,也可以在保存文件时保留现有的行尾。
最简单的方法是使用 dos2unix
。要就地转换,请使用 dos2unix bashtest.sh
.