谷歌搜索了一个小时左右,以获得对以下内容的简单解释。在什么时候:
for i in $(eval echo "{01..30}"); do
echo $i
done
... Bash 是否评估大括号的“..”组件?
谢谢,
扎克
谷歌搜索了一个小时左右,以获得对以下内容的简单解释。在什么时候:
for i in $(eval echo "{01..30}"); do
echo $i
done
... Bash 是否评估大括号的“..”组件?
谢谢,
扎克
您可以set -x
在自己的 shell 脚本中使用来查看它(调试 Bash 脚本)
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
为了回答您的问题,该eval
命令带有两个参数:字符串“echo”和字符串“{01..30}”。当eval
评估由这两个字符串形成的语句时,会发生大括号扩展。