通过算术运算循环遍历hp unix中的日期

时间:2012-07-12 04:55:37

标签: linux perl unix

您好我正在使用hp unix,我正在尝试使用for循环遍历过去20天(相对于当前日期)。

for (( c=1; c<=5; c++ ))
do
day$c=$(perl -e 'use POSIX;print strftime "%Y%m%d\n",localtime time-86400*$c;')
done
later do some operations with day$c

问题是由于某些奇怪的原因86400 * $ c没有执行,任何人都可以指出错误吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

我相信你必须在运算符和操作数之间使用空格

perl -e 'use POSIX; print strftime "%Y%m%d\n",localtime time - 86400 * $c;'

答案 1 :(得分:0)

尝试不同的引语:

day$c=$(perl -e "use POSIX;print strftime qq(%Y%m%d\n),localtime time-86400*$c;")

(我不熟悉HPUX,但看起来$c没有被shell内插。)

编辑:或略短:

day$c=$(perl -MPOSIX -le "print strftime '%Y%m%d',localtime time-86400*$c;")