Jawaban:
Dari halaman manual :
Diberikan dua atau lebih argumen, jeda untuk jumlah waktu yang ditentukan oleh jumlah nilainya .
Begitu:
sleep 7m 30s
bash
bawaan dan GNU sleep
. POSIXly, sleep
hanya diperlukan untuk memahami bilangan bulat sebagai detik
Sudah ada dua jawaban bagus tetapi saya ingin sedikit memperluas. Salin dan tempel perintah di bawah ini ke terminal Anda:
$ sleep 3d 5h 7m 30.05s &
[1] 7321
Ini akan memulai proses kedua yang akan tidur selama 3 hari, 5 jam, 7 menit dan 30,05 detik. ID proses (PID) ada 7321
dalam kasus saya.
Untuk mengkonfirmasi penggunaan 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
Entri pertama adalah yang kami minati. Entri kedua adalah untuk program permanen yang saya jalankan di startup. Entri ketiga adalah untuk perintah grep itu sendiri.
Sekarang untuk melihat berapa banyak waktu yang tersisa (dalam detik) untuk sleep
perintah yang dihasilkan oleh PID 7321
kita dapat menggunakan ini: Bagaimana menentukan jumlah waktu yang tersisa dalam "tidur"? perintah:
$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05
Kode untuk perintah yang dapat Anda sertakan dalam ~/.bashrc
file Anda :
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
perlu disalin ke ~/.bashrc
file Anda sesuai tautan. Anda juga bisa memasukkan kode ke file skrip bash.
Command sleep selalu dihitung dalam hitungan detik. Anda bisa menggunakan ((7x60) +30) detik dan mengetik:
tidur 450
sleep $((60*7))
dapat digunakan selama beberapa menit