Bash:大括号扩展优先级和范围循环

标签 bash shell operators operator-precedence

在 Google 上搜索了大约一个小时,找到了对以下内容的简单明了的解释。在什么时候:

for i in $(eval echo "{01..30}"); do
    echo $i
done

...Bash 是否计算大括号的 '..' 部分?

谢谢

扎克

最佳答案

您可以在 shell 脚本中使用 set -x 自行查看 ( Debugging Bash scripts )

set -x
for i in $(eval echo "{01..30}"); do
    echo $i
done

这是输出:

++ eval echo '{01..30}'
+++ echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
+ for i in '$(eval echo "{01..30}")'
+ echo 1
1
+ for i in '$(eval echo "{01..30}")'
+ echo 2
2

关于Bash:大括号扩展优先级和范围循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021412/

相关文章:

bash - sed 挤压多次出现的单词

python - 如何用 Python 打开 bash session 并保持通信?

shell - Docker:在容器中运行的spigot控制台上执行命令

ruby - (unary) * 运算符在此 Ruby 代码中的作用是什么?

mysql - 如何排除不等于运算符的 NULL?

java - 从 java PDFBOX 获取违规行为

linux - 如何查找所有者和组已定义权限的目录?

linux - 只保留每行的第二个属性

linux - 与命令 : "echo ' #!/bin/bash' |tee file"一样,但使用 "echo ' #!/bin/bash' | myscript file"

linux - 如何同时执行两个 shell 函数?