我正在尝试检查在某个特定端口上运行的进程,如果存在,则将其杀死,因为我必须在该端口上启动另一个进程。
下面是我的代码片段。

#!/usr/bin/env bash

TEST_CASE_PATH="$HOME/Projects";

#kill Previous Process Running on port 9130

OUTPUT="$(ls -1)"
echo "${OUTPUT}" # Getting proper Output

PORT_NUMBER=9130
IS_RUNNING = "$(lsof -i tcp:${PORT_NUMBER} |  awk 'NR!=1 {print $2}' | xargs kill)"

echo "${IS_RUNNING}" # this fails

$OUTPUT似乎工作得很好,但是piped命令似乎中断了。
我犯了如下错误:
正在运行:找不到命令
谁都知道怎么修这个。
谢谢

最佳答案

在IS_RUNNING的声明处有额外的空格。尝试

IS_RUNNING="$(lsof...)"

关于linux - 从bash脚本执行lsof时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30890133/

10-13 05:48