Bash 運算符速查,在script內使用

比較運算符(數值)

運算符 意思
-eq 等於
-ne 不等於
-gt 大於
-lt 小於

字串比較

運算符 意思
= 等於
!= 不等於
-n 字串長度 > 0(非空為真)
-z 字串長度 = 0(空字串為真)

檔案與目錄測試

運算符 意思
-d 路徑 如果路徑是目錄則為真
-e 路徑 如果檔案存在則為真
-f 路徑 如果是普通檔案則為真
-r 路徑 檔案存在且可讀
-w 路徑 檔案存在且可寫
-x 路徑 檔案存在且可執行

退出碼 $?

例子:

systemctl status httpd
echo $?
# 如果 httpd 正在運行,會輸出 0
# 如果沒運行,會輸出非 0


監控進程的範例邏輯

  1. 檢查 PID 檔案(例如 /var/run/httpd/httpd.pid)是否存在:
  2. 啟動進程後,再用 $? 判斷是否成功啟動:
  3. 將日誌寫入檔案(例如 /var/log/monit_httpd.log),方便追蹤。

基本範例腳本