参见英文答案 >
How do I iterate over a range of numbers defined by variables in Bash?17个
任何人都可以解释我如何在bash for循环中使用变量名来生成一系列数字?
任何人都可以解释我如何在bash for循环中使用变量名来生成一系列数字?
for year in {1990..1997} do echo ${year} done
结果:
1990年
1991年
1992年
1993年
1994年
1995年
1996年
1997年
然而
year_start=1990 year_end=1997 for year in {${year_start}..${year_end}} do echo ${year} done
结果:
{} 1990..1997
如何让第二种情况起作用?否则我必须写一些乏味的循环.
非常感谢.
你可以使用这样的东西
for (( year = ${year_start}; year <=${year_end}; year++ )) do echo ${year} done
seq命令已过时,最好避免使用.
http://www.cyberciti.biz/faq/bash-for-loop/
如果你想要真正的坏使用以下语法,
for year in {${year_start}..${year_end}}
请修改如下:
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/
就个人而言,我更喜欢使用((year = ${year_start}; year< = ${year_end}; year)).