我正在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'
这将替换整个脚本。