这是 bash 中有效的“for 循环”吗?

这是 bash 中有效的“for 循环”吗?

我正在学习 for 循环bash,我在网上找到了如下示例:

for i in 1 2 3 4 5
do
    echo $i
done

1 2 3 4 5用许多“东西”(数字、字符串、变量等)替换了:

myVar="!!"
myVar2="Bye"
for i in 3 15 1 32 6 "Hello World $myVar" 'Hello World in single quotes' Hi $myVar2 $(ls)
do
    echo $i
done

当我运行上述代码的脚本时,它按预期工作。但将所有这些“东西”混合在一起是否在某种程度上是无效的?

答案1

假设您提供给循环的参数列表是(或者可以由 shell 扩展为)合法字符串,换句话说,您获得了任何 shell 扩展的正确语法,那么实际上就没有任何限制,一切都可以。

一旦扩展了参数列表,bash 就会将它们输入循环并让循环中的代码运行。

这样做不是一个好的做法,并且会使您的代码难以理解,但它本身并不是“无效”。

相关内容