Bagaimana saya bisa menjalankan perintah setelah X detik tanpa tidur. Atau dengan tidur tetapi tanpa shell hanya menunggu respon dari perintah itu?
Saya menggunakan ini tetapi tidak berhasil
sleep 5 ; ls > a.txt
Saya harus menjalankannya di latar belakang. Saya mencoba untuk tidak harus menjalankannya dalam skrip saya mencoba untuk menjalankan ls
setelah 5 detik, dan shell tidak hanya menunggu akhir dari tidur
command-line
shell
sleep
Martin
sumber
sumber
;
?Jawaban:
Cara yang lebih ringkas untuk menulis apa yang disarankan Hennes
Atau, jika Anda membutuhkan lebih dari beberapa detik, Anda dapat menggunakannya
at
. Ada tiga cara memberi perintah kepadaat
:Pipa itu:
Simpan perintah yang ingin Anda jalankan dalam file teks, dan kemudian meneruskan file itu ke
at
:Anda juga dapat meneruskan
at
perintah dari STDIN:Kemudian, tekan CtrlDuntuk keluar dari
at
shell. Thels
perintah akan dijalankan dalam satu menit.Anda dapat memberikan waktu yang sangat tepat dalam format
[[CC]YY]MMDDhhmm[.ss]
, seperti padaIni akan menjalankan skrip
script.sh
pada 21:34 dan 12 detik pada 18 Desember 2014. Jadi, secara teori, Anda dapat menggunakanat
untuk menjalankan sesuatu lima detik di masa depan. Namun, itu seperti menggunakan tank untuk memukul lalat, dan saran Hennes lebih baik.sumber
$(sleep 5; echo foo) &
saya tidak yakin mengapa saya pikir saya perlu $ di depan itu, tetapi dengan sintaks yang salah saya hanya memposting versi yang lebih panjang (dan lebih dimengerti). (command_for_in_new_shell) lebih pendek.at
dengan penundaan dalam hitungan detik?at 21:43
) Jika itu yang Anda inginkan, atau lakukan sesuatu yang sederhana sepertisleep 4 && command
berlaricommand
setelah 4 detik.Anda bisa mengatasinya dengan memulai shell atau skrip di latar belakang.
Contoh:
sumber