首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Shell 腳本中排除 grep 自身進程的常用技巧

     編輯:程式設計綜合問答

問題場景

執行 top -b -n 1 | grep "homeshell" 時,輸出結果包含 grep 進程本身:

2279 1668 root S 366m 45.8 1 0.0 homeshell
9917 7149 root S 1256 0.1 1 0.0 grep homeshell

期望只保留第一行目標進程。

解決方法

在管線後追加 grep -v grep,反向匹配排除含有 "grep" 關鍵字的行:

top -b -n 1 | grep "homeshell" | grep -v grep

參數說明

  • -v:反向選擇,輸出不匹配模式的行。
  • 可串聯多個 grep -v 排除多個關鍵字,例如 grep -v grep | grep -v "other"。

進階替代方案

  • 使用 pgrep -f homeshell 直接取得 PID,避免 grep 自身干擾。
  • 在 ps 指令搭配 --no-headers 與格式化輸出,減少後處理。

總結

grep -v grep 是 Shell 管線中過濾掉 grep 自身進程的經典慣用寫法,簡單有效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved