当我使用以下语法迭代时为什么需要两个括号?
for (( expr1; expr2; expr3 ))
do
command1
command2
..
done
并且下面的代码不起作用?并抛出错误“意外标记“(”附近出现语法错误”
for ( expr1; expr2; expr3 )
do
command1
command2
..
done
答案1
其原因(
有不同的含义。从bash
联机帮助页:
(list) list 在子shell环境中执行 (参见下面的命令执行环境)。多变的 影响 shell 的赋值和内置命令 命令执行后环境不再有效 完成。返回状态是list的退出状态。 ((表达)) 表达式按照规则求值 如下所述算术评估。如果 表达式的值非零,返回 状态为0;否则返回状态为 1。这是 完全等同于 let “表达式”。