我正在嘗試使用“ lsof”命令打印正在運行的進程的PID??磥砦掖_實獲得了正確的PID,但是我無法使用“ echo”命令將其打印出來。關(guān)于以下bash腳本:#!/bin/bashportsArr=(4003 4200)for port in "${portsArr[@]}"do PID_OF_EXISTING_PROCESS=$(lsof -ti:"$port") if [ -z "$PID_OF_EXISTING_PROCESS" ]; then echo "Process was already running on port: $PID_OF_EXISTING_PROCESS" fidone輸出是進程已經(jīng)在端口上運行:這意味著已識別出PID(“ if”命令到達該點,再加上一些回波,我發(fā)現(xiàn)那時PID_OF_EXISTING_PROCESS等于4003),但由于某種原因未在“ echo”中打印“ 命令。
1 回答

一只斗牛犬
TA貢獻1784條經(jīng)驗 獲得超2個贊
if [ -z "$PID_OF_EXISTING_PROCESS" ];
僅當字符串為空時,此測試才通過。使用-n
來驗證它不是空。
if [ -n "$PID_OF_EXISTING_PROCESS" ];
添加回答
舉報
0/150
提交
取消