Một cách viết ngắn gọn hơn những gì Hennes gợi ý là
(sleep 5; echo foo) &
Ngoài ra, nếu bạn cần nhiều hơn một vài giây, bạn có thể sử dụng at
. Có ba cách đưa ra lệnh cho at
:
Ống nó:
$ echo "ls > a.txt" | at now + 1 min
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Lưu lệnh bạn muốn chạy trong tệp văn bản, rồi chuyển tệp đó sang at
:
$ echo "ls > a.txt" > cmd.txt
$ at now + 1 min < cmd.txt
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Bạn cũng có thể truyền at
lệnh từ STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Sau đó, nhấn CtrlDđể thoát khỏi at
vỏ. Các ls
lệnh sẽ được chạy trong một phút.
Bạn có thể đưa ra thời gian rất chính xác theo định dạng [[CC]YY]MMDDhhmm[.ss]
, như trong
$ at -t 201412182134.12 < script.sh
Điều này sẽ chạy tập lệnh script.sh
vào lúc 21 giờ 34 phút và 12 giây vào ngày 18 tháng 12 năm 2014. Vì vậy, về mặt lý thuyết, bạn có thể sử dụng at
để chạy một cái gì đó năm giây trong tương lai. Tuy nhiên, điều đó cũng giống như sử dụng xe tăng để đuổi ruồi, và gợi ý của Hennes là tốt hơn.
;
không?