Cách sử dụng lệnh Sleep của Linux để tạm dừng tập lệnh BASH
Mục Lục
Những gì để biết
- Sử dụng ngủ lệnh cộng với một thời gian; NS=giây, NS=phút, NS=giờ, hoặc NS=ngày (Ví dụ, ngủ 5 giây tạm dừng tập lệnh trong 5 giây).
- Sử dụng người đàn ông ngủ để biết thêm.
Bài viết này giải thích cách sử dụng lệnh sleep của Linux để tạm dừng một tập lệnh bash, trong số những thứ khác. Riêng nó, lệnh ngủ không hữu ích cho lắm. Tuy nhiên, là một phần của script, nó có thể được sử dụng theo nhiều cách. Ví dụ: bạn có thể sử dụng nó để tạm dừng tập lệnh trước khi thử lại một lệnh không thành công lần đầu tiên.
Ví dụ về việc sử dụng lệnh ngủ
Hãy tưởng tượng bạn có một tập lệnh xử lý các tệp được tải xuống từ một máy chủ khác. Tập lệnh sẽ không bắt đầu quá trình sao chép cho đến khi tất cả các tệp hoàn tất tải xuống. Quá trình tải xuống được thực hiện bởi một tập lệnh riêng biệt chạy trước tập lệnh của bạn.
Tập lệnh sao chép các tệp có thể chứa một vòng lặp để kiểm tra xem tất cả các tệp đã được tải xuống hay chưa (nó thực hiện điều này bằng cách kiểm tra xem có tìm thấy 50 tệp hay không trước khi bắt đầu quá trình sao chép).
Không có ích gì khi kiểm tra tập lệnh liên tục vì điều này sử dụng thời gian của bộ xử lý. Thay vào đó, bạn có thể tạm dừng vài phút giữa mỗi lần kiểm tra trước khi thử lại. Lệnh ngủ là hoàn hảo trong những trường hợp như vậy.
Cách sử dụng lệnh ngủ
Để sử dụng lệnh ngủ của Linux, hãy nhập thông tin sau vào cửa sổ dòng lệnh:
sleep 5s
class = “ql-cú pháp”>
Lệnh trên làm cho thiết bị đầu cuối tạm dừng trong 5 giây trước khi quay trở lại dòng lệnh.
Lệnh ngủ yêu cầu từ khóa ngủ, tiếp theo là số bạn muốn tạm dừng và đơn vị đo lường.
Bạn có thể chỉ định độ trễ theo giây, phút, giờ hoặc ngày.
- NS: Giây
- NS: Phút
- NS: Giờ
- NS: Ngày
Khi nói đến việc tạm dừng một tập lệnh trong nhiều ngày, hãy sử dụng cron job để chạy tập lệnh đó theo các khoảng thời gian đều đặn, thay vì để tập lệnh chạy trong nền trong nhiều ngày.
Công việc cron là một lệnh hoặc tập lệnh Linux mà bạn có thể lên lịch để chạy vào một thời điểm hoặc ngày đã định. Những điều này rất hữu ích cho những công việc lặp lại trong một khoảng thời gian dài.
Số cho khoảng thời gian lệnh ngủ không nhất thiết phải là một số nguyên. Bạn cũng có thể sử dụng số dấu phẩy động.
Ví dụ: cú pháp sau bao gồm một phần của giây:
sleep 3.5s
class = “ql-cú pháp”>
Ví dụ về việc sử dụng lệnh ngủ
Tập lệnh sau cho biết cách sử dụng lệnh ngủ để tạo đồng hồ đếm ngược dựa trên thiết bị đầu cuối:
#!/bin/bash
x=10
while [ $x -gt 0 ]
do
sleep 1s
clear
echo "$x seconds until blast off"
x=$(( $x - 1 ))
done
class = “ql-cú pháp”>
Đây là cách tập lệnh này hoạt động:
- Tập lệnh đặt biến x thành 10.
- Vòng lặp while tiếp tục lặp trong khi giá trị của x lớn hơn 0.
- Lệnh ngủ tạm dừng tập lệnh trong 1 giây mỗi lần xung quanh vòng lặp.
- Phần còn lại của tập lệnh sẽ xóa màn hình mỗi lần lặp lại, hiển thị thông báo, “x giây cho đến khi tắt,” và trừ 1 từ giá trị của x.
Nếu không có lệnh ngủ, tập lệnh sẽ phóng to và các thông báo sẽ hiển thị quá nhanh.
Cách sử dụng công tắc lệnh ngủ
Lệnh ngủ chỉ có một vài công tắc.
Các –Cứu giúp chuyển đổi hiển thị tệp trợ giúp cho lệnh ngủ. Bạn có thể đạt được điều tương tự bằng cách sử dụng lệnh man như sau:
man sleep
data-type = “code”>
Các –phiên bản chuyển đổi hiển thị phiên bản của lệnh ngủ được cài đặt trên hệ thống.
Thông tin được trả về bởi công tắc –version như sau:
- Số phiên bản
- Chi tiết bản quyền
- Giấy phép
- Các tác giả
Tạm dừng lệnh đầu cuối khi ngủ
Một cách sử dụng hiệu quả khác cho lệnh ngủ là tạm dừng các lệnh mà bạn nhập vào cửa sổ dòng lệnh.
Nếu muốn, bạn có thể gõ hai lệnh liên tiếp, đợi lệnh đầu tiên kết thúc trước khi gõ lệnh thứ hai.
Tuy nhiên, một cách tiếp cận nhanh hơn là nhập hai lệnh trên một dòng, với một lệnh ngủ giữa mỗi lệnh:
$ cd /mydirectory/ && sleep 3 && ls
data-type = “code”>
Cách hoạt động của lệnh này:
- Các cd / mydirectory / lệnh thay đổi thư mục.
- Các ngủ 3 đợi ba giây để lệnh cd kết thúc.
- Các ls lệnh thực thi và hiển thị nội dung thư mục.
Đối với một ví dụ đơn giản như thế này, lệnh ngủ chỉ tiết kiệm một chút thời gian. Tuy nhiên, nếu bạn có một danh sách dài các lệnh, khả năng gõ lệnh trên một dòng sẽ tiết kiệm thời gian.
Cảm ơn vì đã cho chúng tôi biết!
Nói cho chúng tôi tại sao!
Khác
Không đủ chi tiết
Khó hiểu