Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách sử dụng lệnh Sleep của Linux để tạm dừng tập lệnh BASH

Những điều cần biết

  • Sử dụng chế độ ngủ lệnh cộng với một thời gian; s = giây , m = phút , h = giờ hoặc d = ngày (ví dụ: ngủ 5 giây tạm dừng tập lệnh trong 5 giây).
  • Sử dụng man sleep để 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 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.

Cách sử dụng lệnh Sleep của Linux để tạm dừng tập lệnh BASH

Ví dụ về việc sử dụng lệnh Sleep

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

The above command makes the terminal pause for 5 seconds before returning to the command line.

The sleep command requires the keyword sleep, followed by the number you want to pause and the unit of measure. 

You can specify the delay in seconds, minutes, hours, or days.

  • s: Seconds
  • m: Minutes
  • h: Hours
  • d: Days

When it comes to pausing a script for days, use a cron job to run the script at regular intervals, as opposed to having a script run in the background for days.

A cron job is a Linux command or script that you can schedule to run at a set time or day. These are useful for repeating tasks over a long period of time.

The number for the sleep command interval doesn't have to be a whole number. You can also use floating-point numbers.

Cách sử dụng lệnh Sleep của Linux để tạm dừng tập lệnh BASH

For example, the following syntax includes a fraction of a second:

sleep 3.5s

An Example of Using the Sleep Command

The following script shows how to use the sleep command to make a terminal-based countdown clock:

#!/bin/bash
x=10
while [ $x -gt 0 ]
do
sleep 1s
clear
echo "$x seconds until blast off"
x=$(( $x - 1 ))
done

Here's how this script works:

  • The script sets the variable x to 10.
  • The while loop continues to iterate while the value of x is greater than zero.
  • The sleep command pauses the script for 1 second each time around the loop.
  • The rest of the script clears the screen each iteration, displays the message, "x seconds until blast off," and subtracts 1 from the value of x.
Cách sử dụng lệnh Sleep của Linux để tạm dừng tập lệnh BASH

Without the sleep command, the script would zoom through, and the messages would display too quickly.

How to Use Sleep Command Switches

The sleep command only has a couple of switches.

The --help switch shows the help file for the sleep command. You can achieve the same thing by using the man command as follows:

man sleep

The --version switch shows the version of the sleep command that's installed on the system.

The information returned by the --version switch is as follows:

  • Version number
  • Copyright details
  • License
  • Authors

Pause Terminal Commands with Sleep

Another good use for the sleep command is to pause commands that you type in the terminal window.

If you want, you can type two commands in a row, waiting for the first one to finish before typing the second.

However, a faster approach is to type the two commands on one line, with a sleep command between each command:

$ cd /mydirectory/ && sleep 3 && ls

How this command works:

  • The cd /mydirectory/ command changes the directory.
  • The sleep 3 command waits three seconds for the cd command to finish.
  • The ls command executes and displays the directory contents.

For a simple example like this, the sleep command only saves a little bit of time. However, if you have a long list of commands, the ability to type the commands on one line saves time.