プロが教える店舗&オフィスのセキュリティ対策術

シェルの中で現在の時間の2分後にコマンドを設定したい。

時間指定でコマンドを実行するのは下記のコマンドでOKなのはわかりましたが、
2分後の時間をとるのがわかりません。

echo "ls" | at 10:11:22

ぐぐった結果は「date -v+2M」というコマンドで取れるとの情報がありましたが、
オプションが正しくないと怒られてしまいます。

使用法: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]

"date +%T"で時間を取得して中身をばらして+2分してatにセットすればよいと思うのですが。。。
他のやり方でもありましたらよろしくお願い致します。

A 回答 (3件)

date --date '2 minutes'


ではどうです?
    • good
    • 1
この回答へのお礼

回答ありがとう御座います。

--date というオプションは存在しないようです。。。

お礼日時:2010/07/20 14:45

dateにも、POSIX準拠のものや、 Linux等で採用されているGNUのものとかがあって、機能が一部違います。


GNUは任意の日時を指定できるのですが、POSIXのものは現在時刻しか表示できません。

そのUsageから、POSIX版のようです。

単に2分後だったら、わざわざatを使わずに、sleepで待って実行する方がよいのではないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとう御座います。
一つのコマンドではなく、複数のコマンドを「同時刻」に実行したかったため、
atコマンドで同じ時間に設定を行いたかったのです。

色々調べた所下記を実行する事で出来ました。
at -f /tmp/test.sh now + 1minute

皆様ありがとうございました。

お礼日時:2010/07/21 16:49

2分後ていどならsleepでは?



sleep 120
echo "ls"
    • good
    • 1
この回答へのお礼

回答ありがとう御座います。

確かに、2分後に実行すればという話だとsleepでよいかと思います。
しかし、今回の場合、あるテストのためX分後に大量のコマンドを一斉に実行したいのです。

お礼日時:2010/07/20 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!