我正在Linux命令行中运行以下脚本:

ps -ef| grep "java -Droute=full" | awk 'NR!=1{print $2}' | while read output;
do
 pid=$(echo $output)
 kill $pid
done

我得到以下错误:
awk: cmd. line:1: NR!=1{print
awk: cmd. line:1:            ^ unexpected newline or end of string

我相信引号和空格是一致的,但为什么我仍然会犯这个错误?
ps -ef | grep "java -Droute=full"的输出
root     24441     1  0 Apr22 ?        00:00:00 sudo nohup java -Droute=full -jar abc
root     24442 24441  7 Apr22 ?        06:41:10 java -Droute=full -jar abc
user  30804 30771  0 05:27 pts/0    00:00:00 grep --color=auto java -Droute=full

最佳答案

您试图解决的实际问题类似于“如何终止命令行包含java -Droute=full的进程”。
一种更简单、更安全的方法是使用pkill

pkill -f 'java -Droute=full'

这将替换整个脚本。

10-06 09:57