首页 > 解决方案 > 请注意,无论哪里有 ';' 出现在命令语法的描述中,可以用一个或多个换行符替换

问题描述

我正在查看“for loop in bash”的语法。这是使用 for 循环的语法之一

for (( i=0; i<4; i++ )); do echo $i; done

我试图替换“;” 使用 for 循环中的新行,它给了我一个错误(我只能在“do”之后或 echo 之后添加新行)。IE

for (( i=0
       i<4
       i++ ))
do echo $i; done

为什么我们需要有一个尾随和结束的空格来进行算术扩展?背后的原因是什么?

谢谢。

标签: bashsh

解决方案


为什么我们需要有一个尾随和结束的空格来进行算术扩展?

for因为这是bash中替代形式的语法。它需要;. 仍然:

for ((i=0;
i<4;
i++)); do

很好。

请注意,无论哪里有 ';' 出现在命令语法的描述中,可以用一个或多个换行符替换

不是“任何地方”——在里面时你不能;;用两个换行符替换case。在命令列表中;时,可以用换行符替换:

一个或多个换行符的序列可能出现在列表中以分隔命令,相当于分号

((...))是一个 bash 扩展,不是命令列表,所以,不存在。


推荐阅读