如何使用Linux Sleep命令暫停Bash指令碼
Sleep是一個命令列實用程式,允許您將呼叫程序掛起一段指定的時間。也就是說,sleep命令在給定的時間內暫停下一個命令的執行。
當在bash shell指令碼中使用sleep命令時,例如在重試失敗的操作或迴圈時,該命令尤其有用。
在本教程中,我們將向您展示如何使用Linux sleep命令。
如何使用Sleep命令
sleep命令的語法如下:
sleep NUMBER [SUFFIX]...
NUMBER可以是正整數或浮點數。
SUFFIX可以是下列之一:
- s - 秒(預設)
- m - 分鐘
- h - 小時
- d - 天
當沒有使用SUFFIX時,預設為秒。
當指定兩個或多個引數時,總時間量等於它們的值之和。
下面是幾個簡單的例子,演示如何使用sleep命令:
暫停7秒鐘:
- sleep 7
暫停0.7秒鐘:
- sleep 0.7
暫停1分50秒:
- sleep 2m 30s
Bash指令碼示例
以下是如何在Bash指令碼中使用sleep命令的最基本示例。 執行指令碼時,它將以HH:MM:SS格式列印當前時間。 然後sleep命令將暫停指令碼5秒鐘。 當指定的時間段過去後,指令碼的最後一行將再次列印當前時間。
#!/bin/bash # 開始時間 echo "開始時間" date +"%H:%M:%S" # 暫停8秒 sleep 8 # 結束時間 echo "結束時間" date +"%H:%M:%S"
輸出看起來像這樣(如下圖):
開始時間
06:06:07
結束時間
06:06:15
我們再來看一個更高階的例子。
#!/bin/bash while : do if ping -c 1 www.linuxidc.com &> /dev/null then echo "Linux公社www.linuxidc.com正在服務中" break fi sleep 5 done
上面的指令碼將每隔5秒檢查主機是否線上,當主機上線時,指令碼會通知您並停止。
執行指令碼,如下圖:
linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com.sh
Linux公社www.linuxidc.com正在服務中
指令碼的工作原理:
- 在第一行中,我們建立了一個無限while迴圈。
- 然後我們使用ping命令來確定IP地址為ip_address的主機是否可訪問。
- 如果主機可訪問,則指令碼將回顯“主機已聯機”並終止迴圈。
- 如果主機無法訪問,則sleep命令會暫停指令碼5秒鐘,然後迴圈從頭開始。
總結
到目前為止,您應該能很好地理解如何使用Linux sleep命令,還不懂,那就不要問我了。
sleep命令是最簡單的shell命令之一,只接受一個用於指定sleep間隔的引數。
更多Linux命令相關資訊見 Linux命令大全 專題頁面 https://www.linuxidc.com/topicnews.aspx?tid=16
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2019-05/158677.htm