+ -
当前位置:首页 → 问答吧 → 帮忙看个shell

帮忙看个shell

时间:2011-02-17

来源:互联网

为什么我输入for i in {20090305..20090320}; do echo $i ; done输出的是{20090305..20090320},不应该是20090305,20090306,.....,20090320吗?

作者: Roby83   发布时间: 2011-02-17

bash支持,看下你用的什么shell

作者: ywlscpl   发布时间: 2011-02-17

能说具体点吗?我不是很懂。我的系统是redhad

作者: Roby83   发布时间: 2011-02-17

用这个试试:
  1. for i in `seq 20090305 20090320`; do echo $i ; done
复制代码

作者: yinyuemi   发布时间: 2011-02-17

回复 Roby83


    echo $0
看下结果是什么

作者: ywlscpl   发布时间: 2011-02-17

echo $0
结果是bash

作者: Roby83   发布时间: 2011-02-17

不是bash就用
for i in `seq 20090305 20090320`
do
...
done

作者: ywlscpl   发布时间: 2011-02-17

for i in `seq 20090305..20090320`; do echo $i ; done
seq: invalid floating point argument: 20090305..20090320
请尝试执行‘seq --help’来获取更多信息
。。。。。。。。。。。。。。。。。。。。。。。。。。。
结果是这个

作者: Roby83   发布时间: 2011-02-17

回复 Roby83


    我之前写错了,去掉两个数字中间的"..",不好意思

作者: yinyuemi   发布时间: 2011-02-17

for i in `seq 20090305 20090320`; do  `date -d $i '+%Y %m %d' 2>/dev/null` echo ???; done
其中???应该写什么才能把日期格式改后的2009 03 05,2009 03 06,。。。。。显示出来啊?

作者: Roby83   发布时间: 2011-02-17

for i in `seq 20090305 20090320`
do
  date +'%Y %m %d'  -d "$i"
done

作者: ywlscpl   发布时间: 2011-02-17

热门下载

更多