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