How to generate for loop number sequence by using variable names in bash?
本问题已经有最佳答案,请猛点这里访问。
任何人都可以解释我如何在bash for循环中使用变量名来生成一系列数字?
1 2 3 4 | for year in {1990..1997} do echo ${year} done |
结果:
1990年
1991年
1992年
1993年
1994年
1995年
1996年
1997年
然而
1 2 3 4 5 6 | year_start=1990 year_end=1997 for year in {${year_start}..${year_end}} do echo ${year} done |
结果:
{}1990..1997
如何让第二种情况起作用? 否则我必须写一些乏味的循环。
非常感谢。
你可以使用这样的东西
1 2 3 4 | for (( year = ${year_start}; year <=${year_end}; year++ )) do echo ${year} done |
http://www.cyberciti.biz/faq/bash-for-loop/
如果你想要真正的坏使用以下语法,
1 | for year in {${year_start}..${year_end}} |
请修改如下:
1 | for year in $(eval echo"{$year_start..$year_end}") |
http://www.cyberciti.biz/faq/unix-linux-iterate-over-a-variable-range-of-numbers-in-bash/
就个人而言,我更喜欢使用
试试以下:
1 | start=1990; end=1997; for year in $(seq $start $end); do echo $year; done |