0

こんにちは、hp unix を使用しています。 for loop を使用して、(現在の日付に関して) 過去 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 が実行されていないことです。誰か間違いを指摘できますか? 前もって感謝します 。

4

2 に答える 2

0

別の引用を試してください:

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

(私は HPUX に詳しく$cありませんが、シェルによって補間されていないようです。)

編集:または少し短い:

day$c=$(perl -MPOSIX -le "print strftime '%Y%m%d',localtime time-86400*$c;")
于 2012-07-13T21:06:03.063 に答える
0

演算子とオペランドの間にスペースを使用する必要があると思います

perl -e 'use POSIX; print strftime "%Y%m%d\n",localtime time - 86400 * $c;'
于 2012-07-12T05:12:12.877 に答える