回答:
bash
組み込みのGNUのsleep
動作であることに注意してください 。POSIXly、sleep
整数を秒として理解するためにのみ必要です
すでに2つの優れた答えがありますが、少し拡大したいと思います。以下のコマンドをコピーして端末に貼り付けます。
$ sleep 3d 5h 7m 30.05s &
[1] 7321
これにより、3日、5時間、7分30.05秒スリープする2番目のプロセスが開始されます。7321
私の場合、プロセスID(PID)です。
PIDの使用を確認するには
$ ps aux | grep sleep
rick 7321 0.0 0.0 14356 660 pts/2 S 22:40 0:00 sleep 3d 5h 7m 30.05s
root 12415 0.0 0.0 14356 700 ? S 22:41 0:00 sleep 60
rick 12500 0.0 0.0 21292 968 pts/2 R+ 22:41 0:00 grep --color=auto sleep
最初のエントリは、興味のあるエントリです。2番目のエントリは、起動時に実行している永続的なプログラム用です。3番目のエントリは、grepコマンド自体用です。
sleep
PIDによって生成されたコマンドの残り時間(秒単位)7321
を確認するために、これを使用できます。「スリープ」に残っている時間を確認する方法 コマンド:
$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05
~/.bashrc
ファイルに含めることができるコマンドのコード:
remaining_sleep_time() { # arg: pid
ps -o etime= -o args= -p "$1" | perl -MPOSIX -lane '
%map = qw(d 86400 h 3600 m 60 s 1);
$F[0] =~ /(\d+-)?(\d+:)?(\d+):(\d+)/;
$t = -($4+60*($3+60*($2+24*$1)));
for (@F[2..$#F]) {
s/\?//g;
($n, $p) = strtod($_);
$n *= $map{substr($_, -$p)} if $p;
$t += $n
}
print $t'
}
remaining_sleep_time
は~/.bashrc
、リンクに従ってファイルにコピーする必要があります。コードをbashスクリプトファイルに入れることもできます。
コマンドのスリープは常に秒単位でカウントされます。((7x60)+30)秒を使用して、単純に入力できます:
睡眠450
sleep $((60*7))
を数分間使用できます