Skip to main content

Làm thế nào để sử dụng lệnh "ngủ" của Linux để tạm dừng một tập lệnh BASH

Doraemon kachi kochi :Doraemon và Viện bảo tàng bảo bối bí mật (Có Thể 2024)

Doraemon kachi kochi :Doraemon và Viện bảo tàng bảo bối bí mật (Có Thể 2024)
Anonim

Hướng dẫn này cho thấy cách sử dụng lệnh ngủ của Linux để tạm dừng một tập lệnh bash.

Theo cách riêng của nó, lệnh sleep hoàn toàn vô dụng trừ khi bạn muốn khóa cửa sổ terminal, nhưng như một phần của script, nó có thể được sử dụng theo nhiều cách khác nhau, bao gồm cả yếu tố tạm dừng trước khi thử lại lệnh.

Ví dụ, hãy tưởng tượng bạn đã có một kịch bản xử lý các tập tin được sao chép từ một máy chủ khác. Tập lệnh không được bắt đầu quá trình sao chép cho đến khi tất cả các tệp đã tải xuống xong. Quá trình tải xuống được thực hiện bằng một tập lệnh hoàn toàn riêng biệt.

Kịch bản để sao chép các tệp cũng có thể chứa vòng lặp để kiểm tra xem tất cả các tệp đã được tải xuống hay chưa (có nghĩa là phải có 50 tệp và khi tìm thấy 50 tệp, quá trình sao chép được bắt đầu).

Không có điểm của kịch bản liên tục thử nghiệm, vì nó chiếm thời gian xử lý. Thay vào đó, bạn có thể chọn kiểm tra xem có đủ tệp sao chép không và nếu không có, hãy tạm dừng trong vài phút rồi thử lại. Lệnh ngủ hoàn hảo trong những trường hợp này.

Cách sử dụng lệnh ngủ

Để sử dụng lệnh ngủ của Linux, hãy nhập lệnh sau vào cửa sổ dòng lệnh:

ngủ 5s

Lệnh trên sẽ làm cho thiết bị đầu cuối của bạn tạm dừng trong 5 giây trước khi đưa bạn trở lại dòng lệnh.

Lệnh ngủ yêu cầu từ khóa 'sleep' theo sau là số bạn muốn tạm dừng và sau đó là đơn vị đo lường.

Bạn có thể chỉ định độ trễ theo giây, phút, giờ hoặc ngày.

  • s - giây
  • m - phút
  • h - giờ
  • d - ngày

Khi nói đến những ngày chờ đợi điều gì đó xảy ra, có thể đáng xem xét sử dụng một công việc cron để chạy tập lệnh trong các khoảng thời gian đều đặn, trái ngược với việc có một tập lệnh chạy trong nền cho ngày kết thúc.

Số cho lệnh ngủ không phải là số nguyên. Bạn cũng có thể sử dụng số dấu phẩy động.

Ví dụ, bạn hoàn toàn có thể sử dụng cú pháp sau:

ngủ 3,5s

Một ví dụ sử dụng cho lệnh ngủ

Kịch bản sau đây cho thấy cách sử dụng lệnh sleep để tạo một đồng hồ đếm ngược dựa trên thiết bị đầu cuối:

#! / bin / bashx = 10trong khi $ x -gt 0làmngủ 1sthông thoángecho "$ x giây cho đến khi nổ ra"x = $ (($ x - 1))làm xong

Tập lệnh đặt biến x thành 10. Vòng lặp while sẽ 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 vòng lặp.

Phần còn lại của tập lệnh 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" (nghĩa là 10) và sau đó trừ 1 từ giá trị của x.

Không có lệnh ngủ, tập lệnh sẽ phóng to và thông báo sẽ được hiển thị quá nhanh.

Công tắc

Lệnh ngủ chỉ có một vài công tắc.

Nút chuyển đổi --help 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:

người đàn ông ngủ

Lệnh --version cho biết phiên bản lệnh ngủ được cài đặt trên hệ thống của bạn.

Thông tin được trả về bởi chuyển đổi --version như sau:

  • Số phiên bản
  • Chi tiết bản quyền
  • Giấy phép
  • Tác giả