bash - 请注意,无论哪里有 ';' 出现在命令语法的描述中,可以用一个或多个换行符替换
问题描述
我正在查看“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
为什么我们需要有一个尾随和结束的空格来进行算术扩展?背后的原因是什么?
谢谢。
解决方案
为什么我们需要有一个尾随和结束的空格来进行算术扩展?
for
因为这是bash中替代形式的语法。它需要;
. 仍然:
for ((i=0;
i<4;
i++)); do
很好。
请注意,无论哪里有 ';' 出现在命令语法的描述中,可以用一个或多个换行符替换
不是“任何地方”——在里面时你不能;;
用两个换行符替换case
。在命令列表中;
时,可以用换行符替换:
一个或多个换行符的序列可能出现在列表中以分隔命令,相当于分号
这((...))
是一个 bash 扩展,不是命令列表,所以,不存在。
推荐阅读
- r - 将相似的字符串分组并将它们的值更改为共同的值,同时保留各个行
- swift - UIStackView 仅在 iPhone SE Simulator 上进行裁剪和截断
- android - TikTok SDK登录如何获取用户信息?
- express - 在对模型进行更改后,我们是否应该使用 Sequelize 手动修改迁移文件?
- git - 有没有办法找出哪个用户在 Git 中重命名了一个分支?
- regex - IIS URL 重写:在 url 中只添加一次斜杠
- sql - SQL Server:删除4列匹配的重复项,但将具有特定值的列保留在另一列中
- javascript - Javascript 中二维数组的 eval() 或 Function() 的替代方法?
- sql - 多边形 PostGIS 上的 ST_Intersect:JOIN/ON 的参数必须是布尔类型,而不是记录类型
- performance - Jmeter 问题:尝试从 CSV 读取数据时,@ 被 %40 替换