我在 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]
我在 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]
pid=
后面有一个空格会将pid
变量设置为空字符串。该行的其余部分将简单地执行管道并输出结果(可能到终端,除非它被重定向)。既然$pid
是空的,kill
后来抱怨。要捕获命令的输出,请使用
$(...)
,例如但是,最好
pkill
用于您尝试做的事情:请参阅
pkill
手册。如果可能的话,我也会避免使用
KILL
信号。参见例如“我什么时候不应该杀死 -9 进程? ”。