sleep là một tiện ích dòng lệnh cho phép bạn đình chỉ quá trình gọi trong một thời gian nhất định. Nói cách khác, lệnh sleep tạm dừng việc thực hiện lệnh tiếp theo trong một số giây nhất định.
Lệnh này rất hữu ích khi được sử dụng trong một tập lệnh bash shell, ví dụ, khi thử lại một hoạt động thất bại hoặc bên trong một vòng lặp.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng lệnh sleep Linux.
Cách sử dụng Lệnh sleep
Cú pháp cho lệnh sleep như sau:
sleep NUMBER[SUFFIX]...
NUMBER có thể là số nguyên dương hoặc số thập phân.
SUFFIX có thể là một trong những điều sau đây:
s– giây (mặc định)m– phúth– giờd– ngày
Khi không có hậu tố nào được chỉ định, nó mặc định là giây.
Khi hai hoặc nhiều đối số được đưa ra, tổng thời gian tương đương với tổng giá trị của chúng.
Dưới đây là một vài ví dụ đơn giản hướng minh cách sử dụng lệnh:
- Sleep trong 5 giây:
sleep 5 - Sleep trong 0,5 giây:
sleep 0.5 - Sleep trong 2 phút 30 giây:
sleep 2m 30s
Ví dụ về Bash script
Trong phần này, chúng ta sẽ đi qua một vài scrips vỏ cơ bản để xem lệnh được sử dụng như thế nào.
#!/bin/bash # start time date +"%H:%M:%S" # sleep for 5 seconds sleep 5 # end time date +"%H:%M:%S"
Khi bạn chạy kịch bản, nó sẽ in thời gian hiện tại ở định dạng HH:MM:SS. Sau đó, lệnh sleep tạm dừng script trong 5 giây. Khi khoảng thời gian được chỉ định trôi qua, dòng cuối cùng của kịch bản sẽ in thời gian hiện tại.
Đầu ra sẽ trông như thế này:
13:34:40 13:34:45
Chúng ta hãy xem một ví dụ nâng cao hơn:
#!/bin/bash
while :
do
if ping -c 1 ip_address &> /dev/null
then
echo "Host is online"
break
fi
sleep 5
done
Kịch bản kiểm tra xem một máy chủ có trực tuyến hay không cứ sau 5 giây. Khi máy chủ lên mạng, kịch bản sẽ thông báo cho bạn và dừng lại.
Cách thức hoạt động của kịch bản:
- Trong dòng đầu tiên, chúng ta đang tạo ra một vòng lặp vô hạn while .
- Sau đó, chúng ta sử dụng lệnh
pingđể xác định xem máy chủ có địa chỉ IP có thể tiếp cận được hay không. - Nếu máy chủ có thể tiếp cận được, kịch bản sẽ lặp lại “Host is online” và chấm dứt vòng lặp.
- Nếu máy chủ không thể tiếp cận được, lệnh tạm dừng kịch bản trong 5 giây và sau đó vòng lặp bắt đầu từ đầu.
Kết thúc
Lệnh sleep này là một trong những lệnh Linux đơn giản nhất. Nó được sử dụng để tạm dừng việc thực hiện lệnh tiếp theo trong một khoảng thời gian nhất định.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận.
