Linux 获取shell脚本中的命令输出

Linux 获取shell脚本中的命令输出,linux,bash,shell,Linux,Bash,Shell,我试图制作一个shell脚本,自动终止在Ubuntu 14.10专用服务器上给定端口上运行的进程 据我所知,使用fuser-n tcp{port number}会给出在该端口中运行的进程的PID,例如: 另外,我知道kill-9{PID}使用这样的PID来终止进程 我如何制作一个shell脚本来获取fuser-ntcp{port number}命令的输出并在kill-9{PID}命令中使用它 感谢您的帮助。以下脚本将允许您传入一个端口,例如../killProcess 25565,并且只要存在P

我试图制作一个shell脚本,自动终止在Ubuntu 14.10专用服务器上给定端口上运行的进程

据我所知,使用fuser-n tcp{port number}会给出在该端口中运行的进程的PID,例如:

另外,我知道kill-9{PID}使用这样的PID来终止进程

我如何制作一个shell脚本来获取fuser-ntcp{port number}命令的输出并在kill-9{PID}命令中使用它


感谢您的帮助。

以下脚本将允许您传入一个端口,例如../killProcess 25565,并且只要存在PID,就会终止该进程

#!/bin/bash

PID=$(fuser -n tcp $1 | awk '{print $2}')

if [ ! -z "$PID" ]; then
    kill -9 $PID
else
    echo "No process is running on port $1"
fi

您可以使用端口139使用样本操作定影器的输出:

pid=$(fuser -n tcp 139 | awk '{print $1}')
echo $pid
# kill -9 $pid , etc

{print$2}的第二组给了我空字符串。。。它对你有用吗?@ChrisSprague是的,它在我的机器上工作。添加了一条else语句,如果找不到给定端口的进程PID,则该语句将执行。您可以使用fuser-k-n tcp-k,或者最好使用fuser-TERM-n tcp来终止使用该端口的进程。