- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルの中で現在の時間の2分後にコマンドを設定したい。)
シェルで現在の時間の2分後にコマンドを設定する方法
このQ&Aのポイント
- シェルの中で現在の時間の2分後にコマンドを設定する方法をご紹介します。時間指定でコマンドを実行するためには「at」コマンドを使用しますが、2分後の時間を取得する方法がわからない場合があります。しかし、「date」コマンドを使って現在の時間を取得し、その時間に2分を加えることで簡単に2分後の時間を求めることができます。
- 具体的な手順は以下の通りです。まず、「date +%T」コマンドを使用して現在の時間を取得します。このコマンドを実行すると、時:分:秒の形式で現在の時間が表示されます。次に、取得した時間のうち分の部分を取り出し、整数として扱います。その後、「expr」コマンドを使用して取り出した分に2を加えます。最後に、得られた2分後の分を「date」コマンドで時:分の形式に変換し、それを「at」コマンドでコマンド実行の時間として設定します。
- 上記の手順により、シェルの中で現在の時間の2分後にコマンドを設定することができます。また、他の方法として、「date -v+2M」コマンドを使用する方法もありますが、オプションが正しくないとエラーが発生する可能性があるため注意が必要です。いずれの方法を選んでも、必要なハッシュタグを読み込んで実行することで、問題なくコマンドを設定することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
date --date '2 minutes' ではどうです?
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.3
dateにも、POSIX準拠のものや、 Linux等で採用されているGNUのものとかがあって、機能が一部違います。 GNUは任意の日時を指定できるのですが、POSIXのものは現在時刻しか表示できません。 そのUsageから、POSIX版のようです。 単に2分後だったら、わざわざatを使わずに、sleepで待って実行する方がよいのではないでしょうか。
質問者
お礼
回答ありがとう御座います。 一つのコマンドではなく、複数のコマンドを「同時刻」に実行したかったため、 atコマンドで同じ時間に設定を行いたかったのです。 色々調べた所下記を実行する事で出来ました。 at -f /tmp/test.sh now + 1minute 皆様ありがとうございました。
- localica
- ベストアンサー率52% (202/385)
回答No.2
2分後ていどならsleepでは? sleep 120 echo "ls"
質問者
お礼
回答ありがとう御座います。 確かに、2分後に実行すればという話だとsleepでよいかと思います。 しかし、今回の場合、あるテストのためX分後に大量のコマンドを一斉に実行したいのです。
お礼
回答ありがとう御座います。 --date というオプションは存在しないようです。。。