[英]fuser command output process ID extraction
嘗試從Fuser輸出中提取使用給定端口號的進程 ID,如下所示
$ fuser 9092/tcp
9092/tcp: 5920
使用awk提取 PID 沒有發生
$ fuser 9092/tcp | awk -F: '{print $2}'
9092/tcp:
從提取的PID中,我想做ls -l /proc/5920/exe
類的
ls -l /proc/$(fuser 9092/tcp | awk -F: '{print $2}')/exe
二進制版本如下:
bash --version # GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
fuser --version # fuser (PSmisc) 22.20
fuser
輸出的非正式部分進入標准錯誤。 標准輸出的輸出已經是計算機可讀的。 (這是一個功能,而不是一個錯誤。)
簡單地說,如果您認為它無用或分散注意力,您可以重定向標准錯誤以擺脫 stderr 輸出。
$ fuser 9092/tcp 2>/dev/null
5920
您可以通過管道輕松地為自己建立這個,例如到nl
$ fuser 9092/tcp | nl
9092/tcp:
1 5920
請注意9092/tcp:
輸出如何沒有獲得行號——它沒有通過管道傳輸到nl
。
所以你的實際代碼可能看起來像
ls -l /proc/$(fuser 9092/tcp 2>/dev/null)/exe
(雖然通常不在腳本中使用ls
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.