![如果命令非空则执行](https://linux22.com/image/1062415/%E5%A6%82%E6%9E%9C%E5%91%BD%E4%BB%A4%E9%9D%9E%E7%A9%BA%E5%88%99%E6%89%A7%E8%A1%8C.png)
答案1
钢铁司机在评论出于特定目的,最好使用,因为过滤viapkill -f
的输出会导致命令本身出现在列表中。相比之下,不会出现这种情况,并且执行起来很干净。ps
grep
grep
ps
pkill
至于一般的如果某个命令的位置参数为空,而你又想运行该命令,那么有两种方法可以解决。第一种方法是保存到变量并检查变量是否为空:
var=$(ps aux | grep '[p]ostgres'|awk '{print $2}')
if ! [ "x$var" = "x" ]; then
sudo kill "$var"
fi
另一种方法是通过xargs
and --no-run-if-empty
(或简写-r
):
ps aux | grep '[p]ostgres'|awk '{print $2}' | xargs --no-run-if-empty kill