Shell Script sleep 延遲執行

本篇 ShengYu 介紹 Shell Script sleep 延遲執行 的用法,Shell Script 中偶爾需要延遲 sleep 幾秒鐘再繼續執行程式或腳本這個功能,例如我想要間隔1秒取得CPU使用量等等諸如此類的場合應用,本篇就介紹如何在 Shell Script 中使用 sleep 指令延遲或暫停,然後再繼續執行。

以下的 Shell Script sleep 延遲執行用法與範例將分為這幾部分,

  • Shell Script 用 sleep 來延遲 1 秒執行
  • Shell Script sleep 延遲 1 秒以下
  • Shell Script sleep 延遲 2 分鐘
  • Shell Script sleep 延遲 x 分鐘 y 秒
  • Shell Script sleep 時間單位整理
  • Shell Script sleep 其他平台注意事項

以下就開始介紹 Shell Script sleep 寫法吧!

Shell Script 用 sleep 來延遲 1 秒執行

以下為 Shell Script sleep 延遲 1 秒執行的範例,s 表示延遲幾秒,

1
sleep 1s

Shell Script sleep 延遲 1 秒以下

如果是要 sleep 延遲 1 秒以下咧?別擔心,sleep 可以接受小數點,
要延遲 0.5 秒的話,

1
sleep 0.5

要延遲 0.01 秒的話,

1
sleep 0.01

那我要怎知道 sleep 延遲的準不準? Linux 有提供一個 time 指令來測量程式執行多久用,那我們馬上來用用看,

1
2
3
4
5
6
7
8
9
10
11
12
$ time sleep 1s
real 0m1.002s
user 0m0.000s
sys 0m0.000s
$ time sleep 0.5
real 0m0.501s
user 0m0.000s
sys 0m0.000s
$ time sleep 0.01
real 0m0.012s
user 0m0.000s
sys 0m0.000s

使用 time 指令計算 sleep 執行時間的結果在我的機器上看起來還蠻準的,

Shell Script sleep 延遲 2 分鐘

那如果要 sleep 延遲 5 分鐘咧?恩,我要寫成 sleep 300s
有沒有不想心算的偷懶方式呢?有!用 m 來表示分鐘,

1
sleep 2m

依此累推的話,欲 sleep 延遲3小時的話,

1
sleep 3h

那 sleep 延遲4天的話就會是這樣,

1
sleep 4d

Shell Script sleep 延遲 x 分鐘 y 秒

有人會問,那 sleep 延遲 2 分鐘 30 秒呢?
很簡單呀!不就是 150 秒嘛!

1
sleep 150s

如果答案只能這樣的話未免也令人太灰心了吧!
另一種人性化的答案就是將前面的招式融會貫通組合起來,

1
sleep 2m 30s

Shell Script sleep 時間單位整理

整理一下 sleep 後面接受的時間單位,
語法:sleep NUMBER[SUFFIX]...

  • s:秒 seconds (預設)
  • m:分鐘 minutes.
  • h:小時 hours.
  • d:天 days.

Shell Script sleep 其他平台注意事項

macOS 下的 sleep 指令只能接受秒的參數

其他參考
sleep(1) - Linux manual page
https://man7.org/linux/man-pages/man1/sleep.1.html
Linux Sleep Command (Pause a Bash Script) | Linuxize
https://linuxize.com/post/how-to-use-linux-sleep-command-to-pause-a-bash-script/
Linux sleep 如何暫停半秒、微秒 – Tsung’s Blog
https://blog.longwin.com.tw/2018/06/linux-bash-shell-sleep-half-millisecond-2018/

其它相關文章推薦
Shell Script 新手入門教學
Shell Script 四則運算,變數相加、相減、相乘、相除
Shell Script if 條件判斷
Shell Script for 迴圈
Shell Script while 迴圈
Shell Script 讀檔,讀取 txt 文字檔
Linux sed 字串取代用法與範例
Linux cut 字串處理用法與範例
Linux tail 持續監看檔案輸出用法與範例
Linux find 尋找檔案/尋找資料夾用法與範例
Linux kill 指令砍掉指定的 process name
Linux tee 同時螢幕標準輸出和輸出到檔案用法與範例
Linux grep/ack/ag 搜尋字串用法與範例