Bash休眠(sleep命令)


在本小節中,將了解如何通過使用不同的bash指令碼來使用sleep命令。Sleep是一個命令列實用程式,可在指定的時間中暫停呼叫過程。換句話說,Bash sleep命令用於在指定的時間段內插入延遲或暫停執行。

當程式員出於特定目的需要暫停執行任何命令時,可以將該命令與特定時間值一起使用。可以按秒(s),分鐘(m),小時(h)和天(d)設定延遲量。在bash shell指令碼中使用此命令時特別有用。

sleep命令語法

以下是Bash中sleep命令的語法:

sleep number[suffix]

可以使用正整數或小數作為時間值。字尾是可選部分。可以將以下任意一項用作字尾:

  • s - 表示秒
  • m - 表示分鐘
  • h - 表示小時
  • d - 表示天

注意:如果沒有字尾,則數位以秒為單位(預設情況下)。

如果指定了兩個或多個引數,則總的時間將被視為等於值之和的時間。
以下是一些簡單的範例,演示了如何使用sleep命令:

  • 睡眠9秒鐘,使用:

    sleep 9 或 sleep 9s
    
  • 睡眠0.5秒鐘,使用:

    sleep 0.5 或 sleep 0.5s
    
  • 睡眠2分30秒,使用:

    sleep 2m 30s
    
  • 睡眠8小時,使用:

    sleep 8h
    
  • 睡眠2天9小時5分55秒,使用:

    sleep 2d 9h 5m 55s
    

Bash指令碼範例

下面將在Bash中演示如何使用sleep命令。

Bash指令碼:

#!/bin/bash  

# start time  
date +"%H:%M:%S"  

echo "wait for 9 seconds"  

# sleep for 9 seconds  
sleep 9s   
# you can also use "sleep 9" in place of "sleep 9s" because if there is no suffix, it is considered as "seconds".  


# end time  
date +"%H:%M:%S"  

echo "Task Completed"

將上面範例程式碼儲存到檔案:bash-sleep.sh,並執行得到以下結果:

Bash sleep命令示例

指令碼如何工作?

當我們執行指令碼時,它將以HH:MM:SS格式列印當前時間。然後,echo命令將執行並顯示訊息「wait for 9 seconds」。然後,sleep命令將執行並將指令碼暫停9秒鐘。經過指定的時間段後,指令碼的下一行將再次列印當前時間。最後,echo命令將顯示訊息「Task Completed」

同樣,可以指定在幾分鐘,幾小時和幾天內執行sleep命令。