Khi viết shell script, bạn có thể cần script chờ một số giây trước khi tiếp tục. Ví dụ, bạn muốn script chờ đợi quá trình hoàn tất hoặc trước khi thử lại lệnh thất bại.
Để làm điều này, bạn có thể dùng lệnh sleep rất trực quan.
Cách dùng lệnh Bash Sleep
Sleep là lệnh rất linh hoạt với cú pháp đơn giản. Chỉ cần gõ sleep N. Script sẽ tạm dừng N giây, với N là số nguyên dương hoặc số thực.
Xem ví dụ cơ bản:
echo "Hello there!"
sleep 2
echo "Oops! I fell asleep for a couple seconds!"
Kết quả script sẽ như sau:
Tương tự, bạn có thể dùng số thực để biểu thị phân giây. Ví dụ, sleep .8 sẽ tạm dừng script 0.8 giây.
Đó là tất cả về cách dùng cơ bản của lệnh sleep!
Lưu ý khi dùng lệnh Sleep
Đơn vị thời gian mặc định của Sleep là giây, nên không cần chỉ định đơn vị trong ví dụ trên.
Trên một số loại máy (cụ thể là hệ thống BSD và MacOS), chỉ có giây là đơn vị thời gian được hỗ trợ. Các hệ điều hành Unix-like khác có thể hỗ trợ các đơn vị sau:
s: giâym: phúth: giờd: ngày
Cũng có thể dùng nhiều hơn một tham số với lệnh sleep. Nếu có hai hoặc nhiều số, hệ thống sẽ chờ tổng thời gian của các số đó.
Ví dụ, sleep 2m 30s tạo tạm dừng 2 phút rưỡi. Lưu ý để đạt cùng kết quả trên MacOS hoặc BSD, bạn chạy lệnh tương đương sleep 150, vì 2 phút 30 giây = 150 giây.
Kết luận
Lệnh sleep là cách hữu ích thêm tạm dừng vào Bash script. Kết hợp với các lệnh khác, sleep giúp tạo báo thức theo thời gian, chạy các thao tác theo đúng thứ tự, giãn cách các lần thử kết nối website, và hơn thế nữa. Hãy để công cụ đơn giản nhưng mạnh mẽ này vào hộp công cụ Bash của bạn và tiếp tục code!