動態

詳情 返回 返回

shell 腳本中 wait 和 sleep 的區別 - 動態 詳情

The Difference Between Wait and Sleep in Shell Scripting

在 shell 腳本世界中,理解各種命令之間的細微差別對於編寫高效的腳本至關重要。兩個經常引起混淆的命令是waitsleep。雖然它們看上去很相似,但在腳本執行中每個都有其獨特的用途。

The sleep Command

sleep 命令用於在腳本執行過程中延遲一個固定的時間。用於暫停執行一段指定的時間。

Syntax :

sleep NUMBER[SUFFIX]...
  • NUMBER 可以是整數或浮點數。
  • SUFFIX 可以是 s 表示秒(默認),m 表示分鐘,h 表示小時,或 d 表示天。

    使用示例:

    #!/usr/bin/env bash
    
    echo "Wait for 5 seconds"
    sleep 5
    echo "Resumed after 5 seconds"

The wait Command

wait 命令用於暫停腳本,直到滿足特定條件,通常是完成後台進程。用於腳本執行與後台任務的完成同步。

  • Syntax :
wait [id]

id 為後台進程的 job ID。如果沒有指定 ID,則該命令等待當前所有子進程完成。

使用示例:

#!/usr/bin/env bash

echo "Start background process"
some_long_running_process &
process_id=$!

echo "Wait for the process to complete"
wait $process_id
echo "Background process completed"

Conclusion

由於不同的原因,wait 和 sleep 在 shell 腳本中都是至關重要的。sleep 直接用於添加延遲,而 wait 則更為複雜,適合於管理進程依賴關係。理解它們的區別是有效編寫 shell 腳本的關鍵。

我的開源項目

酷瓜雲課堂-開源知識付費解決方案

  • course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
  • course-tencent-cloud(酷瓜雲課堂 - github倉庫)
user avatar zdyz 頭像 dbkangaroo 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.