在执行awk时出现意外的换行错误

时间:2016-04-26 05:04:42

标签: linux bash shell awk

我在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

1 个答案:

答案 0 :(得分:2)

您尝试解决的实际问题类似于"如何终止其命令行包含java -Droute=full的进程。

更简单,更安全的方法是使用pkill

pkill -f 'java -Droute=full'

这将取代整个脚本。