Tôi có:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
chạy như một bộ đếm thời gian đơn giản, không rườm rà để nhắc nhở tôi khi nào nên làm gì đó. Đó sleep 210mlà PID 25347.
Tôi đang cố gắng tìm hiểu bao nhiêu thời gian còn lại trong giấc ngủ. Điều tốt nhất tôi nghĩ ra, với tôi đưa vào thời lượng ngủ ban đầu (210 phút) là:
$ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc
78:11
(Giải thích: Bit đầu tiên tính số giây trong giấc ngủ ban đầu; $(ps…)bit lấy thời gian kể từ khi giấc ngủ bắt đầu tính bằng giây, sau đó phần còn lại trừ chúng và hiển thị theo phút và giây.)
Nó xảy ra với tôi điều này sẽ hữu ích nói chung; Có cách nào tốt hơn để làm điều này? Hoặc ít nhất là một cách thông minh để phân tích thời gian ngủ từ ps -o args?
exec). Nhưng đó là một điểm tốt cho bất kỳ giải pháp chung.
mkshvà ksh93ít nhất) đã tích sleephợp sẵn (vì vậy sẽ không xuất hiện ps)., Bạn cần biết trước những sleeptriển khai mà bạn đang xử lý.
sh -c 'sleep 1; sleep 2'với nhiềushtriển khai, đó là cùng một quy trình thực thishvà sau đó thực thisleep 2(1 giây sau).