網站首頁 編程語言 正文
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
相關推薦
- 2022-09-10 C#實現自定義線程池實例代碼_C#教程
- 2022-07-29 Python列表append()函數使用方法詳解_python
- 2024-07-22 get 、set 、toString 方法的使用
- 2022-09-28 k8s證書有效期時間修改的方法詳解_云其它
- 2022-03-28 Python獲取網絡時間戳的兩種方法詳解_python
- 2022-09-29 DevExpress的DateEdit設置顯示日期和時間的方法_C#教程
- 2023-01-23 python操作excel之openpyxl模塊讀寫xlsx格式使用方法詳解_python
- 2022-12-23 python如何獲取文件當前位置和定位某個位置_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支