我对bash不太好,但我正在尝试创建一个脚本来杀死一些
java进程:
/usr/ucb/ps -auxww \ | grep 'XUnit' \ | grep -v 'grep' \ | cut -c -2000 \ | awk '{print $2;}' \ | xargs kill
这里使用了cut,因为awk可能会因为行过长而失败(请参阅POSIX specification for awk中对LINE_MAX限制的引用).
当没有这样的进程时会出现问题 – xargs尝试在没有参数的情况下运行kill,从而导致错误.
我的xargs不接受-r或–no-run-if-empty args,如a related question that doesn’t specify POSIX compliance的答案所示.