Với bash
nội dung, bạn có thể làm:
coproc read -t 10 && wait "$!" || true
Để ngủ trong 10 giây mà không sử dụng sleep
. Điều coproc
này là để làm cho read
stdin đó là một đường ống nơi không có gì sẽ xuất hiện. || true
là bởi vì wait
trạng thái thoát sẽ phản ánh phân phối SIGALRM, điều này sẽ khiến shell thoát ra nếu errexit
tùy chọn được đặt.
Trong các vỏ khác:
mksh
và ksh93
đã tích sleep
hợp sẵn, không có điểm nào trong việc sử dụng bất cứ thứ gì khác ở đó (mặc dù cả hai cũng hỗ trợ read -t
).
zsh
cũng hỗ trợ read -t
, nhưng cũng có một trình bao bọc dựng sẵn xung quanh select()
, vì vậy bạn cũng có thể sử dụng:
zmodload zsh/zselect
zselect -t 1000 # centiseconds
Nếu những gì bạn muốn là lên lịch mọi thứ sẽ được chạy từ phiên shell tương tác, hãy xem thêm zsh/sched
mô-đun trongzsh
.
sleep
vậy?