端末で特定の時間にインタラクティブにコマンドを実行する

端末で特定の時間にインタラクティブにコマンドを実行する

同様のコマンドがありますが、指定されたsleep時間にコマンドが開始されるように指定された時間を指定できますか?インタラクティブ現在開いているターミナルウィンドウですか?

コマンドを知っているがat現在開いているターミナルウィンドウで対話的に実行されないため、機能しません。

夜明け4時に端末でコマンドを開始する必要があります。睡眠から目覚めたらすぐにコマンドを入力してEnterを押します。

私が考える最も近い解決策は、寝る前の04:00までの残り時間(秒)を計算してからsleepコマンドを使用することです。しかし、それは醜いです。これを行うより良い方法が必要です。

答え1

「醜い」部分が睡眠時間を計算するだけである場合は、4つのコマンドを使用してスクリプトを作成できます。入力遅延を避けるために(使用して)単一のコマンドで作成しましたが、代わりにスクリプト; \で書くことができます。これは一度だけ実行され、sleep繰り返しは必要ありません。

省電力コマンドの表示:実際の遅延が必要な場合は、echoこの単語を省略してください。echo先行$合計は、>ユーザーが入力したものではなく、シェルプロンプトです。

$ Now=$( date '+%s' ); \
> End=$( date -d '0400 tomorrow' '+%s' ); \
> date -d "+ $(( End - Now )) seconds"; \
> echo sleep $(( End - Now ));
Sun 28 Apr 04:00:00 BST 2024
sleep 64036
$ 

関連情報