无法打印进程的PID

时间:2018-05-05 16:19:40

标签: linux bash shell unix

我正在尝试使用“lsof”命令打印正在运行的进程的PID。

似乎我确实得到了正确的PID,但我无法用“echo”命令打印它。

关于以下bash脚本:

#!/bin/bash

portsArr=(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"
  fi

done

输出

  

进程已在端口上运行:

这意味着识别出一个PID(“if”命令到达那个点加上我做了一些更多的回声,我看到那时PID_OF_EXISTING_PROCESS等于4003),但由于某种原因没有打印出来“echo”命令。

1 个答案:

答案 0 :(得分:1)

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())

此测试仅在字符串为空时才会通过。使用if [ -z "$PID_OF_EXISTING_PROCESS" ]; 验证其为空。

-n
相关问题