shell sleep睡眠命令的具體使用
1. 背景
當(dāng)用戶在 Linux 中發(fā)出多個命令序列時,命令會立即一個接一個或同時執(zhí)行(例如,tee 命令)。但是,有時需要推遲命令的執(zhí)行并為系統(tǒng)提供足夠的時間來產(chǎn)生預(yù)期的結(jié)果。
2. 簡介
sleep命令將下一個命令的調(diào)用進(jìn)程掛起一段指定的時間。當(dāng)以下命令的執(zhí)行取決于前一個命令的成功完成時,此屬性很有用。
3. 語法
sleep [number]
默認(rèn)情況下,系統(tǒng)讀取之后sleep的數(shù)字作為秒數(shù)。要指定其他時間單位,請使用以下語法:
sleep [number][unit]
sleep 1h 2m 0.5s
該sleep命令接受浮點數(shù)。它允許多個值相加,以計算sleep.
可用單位有:
- s– 秒
- m- 分鐘
- h- 小時
- d- 天
要sleep在開始后和指定的等待時間結(jié)束前停止,請按Ctrl + C。
要查看該sleep命令的幫助,請鍵入:
sleep --help
有關(guān)版本詳細(xì)信息,請鍵入:
sleep --version
4. 與 wait 區(qū)別
bash wait 命令是一個Shell 命令,它等待后臺運(yùn)行的進(jìn)程完成并返回退出狀態(tài)。與等待指定時間的 sleep 命令不同,wait 命令等待所有或特定的后臺任務(wù)完成。
5. 實例
5.1 設(shè)置警報
用于sleep告訴系統(tǒng)在一定時間后播放 mp3 文件。
sleep 7h 30m && mplayer alarm.mp3
5.2 終端中的延遲命令
sleep對于強(qiáng)制執(zhí)行兩個命令之間的時間很有用,以一秒的間隔執(zhí)行:
$ 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命令的參數(shù)。此示例腳本的輸出顯示執(zhí)行持續(xù)了 30 秒:
$ ./time_script.sh Time before sleep: 00:01:15 Sleeping for 30 seconds Time after sleep: 00:01:45
5.4 定義檢查間隔
檢查網(wǎng)站是否在線,如果成功 ping 一個網(wǎng)站,腳本就會停止,在不成功的 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 為操作完成留出時間
您可能正在運(yùn)行一個 bash 腳本,該腳本在內(nèi)部調(diào)用另外兩個 bash 腳本——一個在后臺運(yùn)行測試,另一個打印結(jié)果。如果第二個腳本在第一個腳本完成之前執(zhí)行,用于sleep防止第二個腳本打印錯誤的結(jié)果:
while kill -0 $BACK_PID ; do
echo "Waiting for the process to end"
sleep 1
done
該kill -0 $BACK_PID命令檢查第一個腳本的進(jìn)程是否仍在運(yùn)行。如果是,它會打印消息并休眠 1 秒鐘,然后再次檢查。
5.6 預(yù)測延遲
用于sleep允許某些命令執(zhí)行的延遲。
for (( i = 1 ; i <= 250 ; i++ ));
do
sleep 1
<do something>
done
參考:
How to Use the Linux sleep Command with Examples
到此這篇關(guān)于shell sleep睡眠命令的具體使用的文章就介紹到這了,更多相關(guān)shell sleep命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux 刪除文件夾和文件的命令(強(qiáng)制刪除包括非空文件)
linux刪除目錄很簡單,很多人還是習(xí)慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現(xiàn)在使用rm -rf命令即可。接下來通過本文給大家介紹Linux 刪除文件夾和文件的命令(強(qiáng)制刪除包括非空文件),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
一個強(qiáng)大的網(wǎng)絡(luò)分析shell腳本分享(實時流量、連接統(tǒng)計)
這篇文章主要介紹了一個強(qiáng)大的網(wǎng)絡(luò)分析shell腳本分享,此腳本包含實時流量統(tǒng)計、連接統(tǒng)計強(qiáng)大功能,需要的朋友可以參考下2014-12-12
使用Linux的alternatives命令替換選擇軟件的版本方法
下面小編就為大家?guī)硪黄褂肔inux的alternatives命令替換選擇軟件的版本方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
windows下上傳shell腳本不能運(yùn)行的解決方法
windows下上傳shell腳本不能運(yùn)行—將dos模式修改為unix 文件格式 就可以順利解決,下文給大家?guī)砹嗽敿?xì)解決方法,一起看看吧2018-06-06

