首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Shell 腳本實現無限迴圈的標準寫法

     編輯:關於C

標準語法

#!/bin/sh
while :; do
    # 執行任務
    # ...
done

關鍵點解析

  • : 是 Shell 內建的空命令,永遠回傳成功(exit code 0),相當於 C 的 ; 或 true。
  • while : 條件永真,形成無限迴圈。
  • do ... done 包裹迴圈本體。

常見變體

1. 使用 true(可讀性較佳)

while true; do
    # ...
done

2. 使用 for 迴圈

for (( ; ; )); do
    # ...
done

3. 單行寫法(互動測試用)

while :; do echo "Running..."; sleep 1; done

控制迴圈

  • break:跳出迴圈。
  • continue:跳過本次剩餘指令,進入下一次迭代。
  • trap 'break' SIGINT SIGTERM:捕捉 Ctrl+C 等信號優雅退出。

實用範例:監控服務並自動重啟

#!/bin/sh
SERVICE="./my_server"
while :; do
    if ! pgrep -x "my_server" >/dev/null; then
        echo "$(date): 服務異常退出,重啟中..."
        $SERVICE &
    fi
    sleep 5
done

注意事項

  • 無限迴圈必須包含 sleep 或阻塞式 I/O,否則會佔滿 CPU。
  • 生產環境建議加入日誌輪轉、PID 檔案管理、信號處理,或直接使用 systemd、supervisord 等程序管理工具。
  • #!/bin/sh 宣告 POSIX sh 相容,若使用 Bash 特有語法(如 for ((;;)))請改 #!/bin/bash。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved