次のように、日付(日時分)が指定されたシェルを作成したいと思います。
10:00 AM Sun
2:30 PM Mon
...
正確な日付と時刻までスリープモードのままです。 1つの方法は、現在の日付を取得して差を計算できることです。それから秒に変換し、その時間の間寝ます。
しかし、シェルスクリプトを使用してこれを行う方法がわかりません。
#!/bin/bash
now=$(date '+%A %W %Y %X')
date = 2:30 PM Mon
difference = ??
sleep difference
ベストアンサー1
ユーザーがコマンドを使用できる場合、at
これは完全な使用です。
$ at 08:00 022116
at> myscript.sh
at> <----------- ctrl-d here
job 9 at 2016-02-21 08:00
at
「ユーザーは実行できません」というメッセージが表示された場合は、syadminにこのユーザーが環境でどのように使用されるかに応じて、このユーザーをファイルに追加するか、at.allow
ファイルから削除するように依頼してください。at.deny
もちろん、スクリプトを書く途中で今日の長い睡眠をしたくない場合は例外です。それでも、スクリプトを2つの部分に分割して保持したい変数をファイルに書き込んでから、時間が経過してスクリプトの2番目の部分が実行されると、保存されたファイルからその変数を読み取ることができます。