红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > SuSE

shell脚本为什么会是这样的结果

发布时间:2015-03-10 16:09:28来源:红联作者:zongsh
很简单的一个脚本,我就是循环显示一串网址,网址我还简化了很多,具体如下
代码:
#!/bin/bash
for stockid in {600000..600010};do
for year in {2001..2004}

do
echo /cwbl.aspx?stockid=$stockid\&accountdate=$year.12.31
done
done

结果显示的结果却异常,每行显示类似如下,

.12.31laspx?stockid=600007&accountdate=2003

为什么最后的12.31会到前面去,而且覆盖了前面的字符??????
文章评论

共有 5 条评论

  1. Mach.HL 于 2015-04-01 10:14:31发表:

    2# acrofox


    大牛,这样就能看出问题,一定是有很丰富的经验。 求加好友,本人学习中,还请多指教!

  2. jackyduys 于 2015-03-12 12:58:48发表:

    学习了!!!(6)m:b

  3. zongsh 于 2015-03-11 14:59:11发表:

    可以啊,在反复删除了行尾的情况下,打印输出正常了,多谢~!

  4. zongsh 于 2015-03-11 12:16:29发表:

    多谢,我试试

  5. acrofox 于 2015-03-11 09:37:26发表:

    你的脚本保存为DOS格式了,行尾都有个 ^M (回车符),于是 $year 的值实际为“2003^M”

    再显示完2013后光标回到行首显示 .12.31,于是出现这个结果。可以把输出该向到文件中再用编辑器打开,看得更清楚。