我是bash脚本新手。 我试图在嵌套for循环中使用变量用于计数器,如下所示:
0000000
0000001
...
...
1111110
1111111
输出就是这个(我得到错误):
dir_count=$(find dump_${d}/* -maxdepth 0 -type d | wc -l)
count_by=11
for ((i=0;i<=$dir_count;i+=$count_by))
do
((start=$i+1))
((end=$count_by+$i))
echo $start $end
for dir in {$start..$end}
echo $dir
done
done
1,11,12,22,23,33对我来说都像整数!是否可以输入变量?我以为它不是。
谢谢!
答案 0 :(得分:1)
在bash
中,大括号扩展会在变量扩展之前发生,所以你的代码
for dir in {$start..$end}
永远不会做它应该做的事情;在bash
中使用适当的循环,使用C风格的for循环作为
for ((dir=start; dir<=end; dir++)); do
echo "$dir"
done
从man bash
页面引用
[..]在任何其他扩展之前执行Brace扩展,并且在结果中保留对其他扩展特殊的任何字符。它是严格的文本[..]