2021-05-12 14:32:11
如何使用Linux Sleep命令暫停Bash指令碼
2020-06-16 16:36:08
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間隔的引數。
相關文章