bash 文件中的 Kill -9 问题

bash 文件中的 Kill -9 问题

我在Centos 6.8中写了一个2行bash脚本文件

#! /bin/sh
pid= ps -ef | grep -i 'adminserver' | grep -v grep | awk '{print $2}'
kill -9 $pid

当我运行脚本时,我得到以下输出:

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

答案1

pid=后面加一个空格会将pid变量设置为空字符串。该行的其余部分将简单地执行管道并输出结果(可能输出到终端,除非它被重定向)。既然$pid是空的,kill后来就抱怨了。

要捕获命令的输出,请使用$(...),例如

pid=$( ps -ef | ... )

但是,最好用于pkill您尝试执行的操作:

pkill adminserver

请参阅pkill手册。

KILL如果可能的话,我也会避免使用该信号。参见例如“我什么时候不应该杀死-9进程?”。

相关内容