日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

shell?sleep睡眠命令的具體使用_linux shell

作者:ghostwritten ? 更新時間: 2023-03-01 編程語言

1. 背景

當用戶在 Linux 中發出多個命令序列時,命令會立即一個接一個或同時執行(例如,tee 命令)。但是,有時需要推遲命令的執行并為系統提供足夠的時間來產生預期的結果。

2. 簡介

sleep命令將下一個命令的調用進程掛起一段指定的時間。當以下命令的執行取決于前一個命令的成功完成時,此屬性很有用。

3. 語法

sleep [number]

默認情況下,系統讀取之后sleep的數字作為秒數。要指定其他時間單位,請使用以下語法:

sleep [number][unit]
sleep 1h 2m 0.5s

該sleep命令接受浮點數。它允許多個值相加,以計算sleep.

可用單位有:

  • s– 秒
  • m- 分鐘
  • h- 小時
  • d- 天

要sleep在開始后和指定的等待時間結束前停止,請按Ctrl + C。

要查看該sleep命令的幫助,請鍵入:

sleep --help 

有關版本詳細信息,請鍵入:

sleep --version

4. 與 wait 區別

bash wait 命令是一個Shell 命令,它等待后臺運行的進程完成并返回退出狀態。與等待指定時間的 sleep 命令不同,wait 命令等待所有或特定的后臺任務完成。

5. 實例

5.1 設置警報

用于sleep告訴系統在一定時間后播放 mp3 文件。

sleep 7h 30m && mplayer alarm.mp3

5.2 終端中的延遲命令

sleep對于強制執行兩個命令之間的時間很有用,以一秒的間隔執行:

$ sleep 1 && echo "one" && sleep 1 && echo "two"
one
two

5.3 變量分配給 sleep

可以將變量分配給sleep命令。

#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}"

該腳本定義了一個名為的變量SLEEP_INTERVAL ,其值稍后用作sleep命令的參數。此示例腳本的輸出顯示執行持續了 30 秒:

$ ./time_script.sh
Time before sleep: 00:01:15
Sleeping for 30 seconds
Time after sleep: 00:01:45

5.4 定義檢查間隔

檢查網站是否在線,如果成功 ping 一個網站,腳本就會停止,在不成功的 ping 之間引入 10 秒的延遲。

#!/bin/bash
while :
  do
    if ping -c 1 www.google.com &> /dev/null
    then
   echo "Google is online"
   break
   fi
 sleep 10
done

5.5 為操作完成留出時間

您可能正在運行一個 bash 腳本,該腳本在內部調用另外兩個 bash 腳本——一個在后臺運行測試,另一個打印結果。如果第二個腳本在第一個腳本完成之前執行,用于sleep防止第二個腳本打印錯誤的結果:

while kill -0 $BACK_PID ; do
    echo "Waiting for the process to end"
    sleep 1
done

該kill -0 $BACK_PID命令檢查第一個腳本的進程是否仍在運行。如果是,它會打印消息并休眠 1 秒鐘,然后再次檢查。

5.6 預測延遲

用于sleep允許某些命令執行的延遲。

for (( i = 1 ; i <= 250 ; i++ )); 
    do  
    sleep 1
    <do something>
done

參考:

How to Use the Linux sleep Command with Examples

原文鏈接:https://blog.csdn.net/xixihahalelehehe/article/details/127348342

欄目分類
最近更新