在shell脚本中获取命令输出

时间:2015-08-07 13:14:50

标签: linux bash shell

我正在尝试创建一个shell脚本,在Ubuntu 14.10专用服务器上自动终止在给定端口中运行的进程。

据我所知,使用fuser -n tcp {port-number}给出了在该端口中运行的进程的PID,例如:http://prntscr.com/81whib

另外,我知道kill -9 {PID}会使用这样的PID杀死进程。

我怎样才能创建一个shell脚本来获取命令fuser -n tcp {port-number}的输出并在命令kill -9 {PID}中使用它?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

以下脚本允许您传入一个端口(例如./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

答案 1 :(得分:0)

您可以使用awk操作fuser的输出(使用端口139的示例):

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