我正在尝试使用“ lsof”命令打印正在运行的进程的PID。看来我确实获得了正确的PID,但是我无法使用“ echo”命令将其打印出来。关于以下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输出是进程已经在端口上运行:这意味着已识别出PID(“ if”命令到达该点,再加上一些回波,我发现那时PID_OF_EXISTING_PROCESS等于4003),但由于某种原因未在“ echo”中打印“ 命令。
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
if [ -z "$PID_OF_EXISTING_PROCESS" ];
仅当字符串为空时,此测试才通过。使用-n
来验证它不是空。
if [ -n "$PID_OF_EXISTING_PROCESS" ];
- 1 回答
- 0 关注
- 245 浏览
添加回答
举报
0/150
提交
取消