此问题已在此处有答案:
Bash script process substitution Syntax error: "(" unexpected(3个答案)
3天前关闭。
这失败了:
#!/bin/bash
N_TIMES="$1"
for ((n = 0; n < $N_TIMES; n++)); do
# command
done
手动设置变量也会失败:
#!/bin/bash
N_TIMES=10
for ((n = 0; n < $N_TIMES; n++)); do
# command
done
两人返回:
Syntax error: Bad for loop variable
为什么循环不能将变量作为一个数字读取以进行迭代?应该如何读取第一个参数作为运行命令的次数?
1条答案
按热度按时间2nc8po8w1#
如果使用
sh script
,则以POSIX
模式传递脚本,即使使用bash
shebang#!/bin/bash
。shebang只在你没有自己启动解释器的时候使用:当你自己启动一个解释器时,操作系统不必为你做这件事,所以没有什么会看shebang。
这与使用c编译器编译c++非常相似。
所以不要用:
执行脚本。
相反,请执行以下操作:
在我的Debian like OS上:
此外,don't use UPPER case variables
最后:
在算术运算中不需要符号
$
。