Я использую следующий фрагмент, чтобы внезапно завершить работу любого java процесса:
ps -ef | grep java | grep -v grep | awk "{print $2}" | xargs kill -9
Я хотел бы иметь это в сценарии оболочки, который можно запускать на нескольких машинах, но когда я его помещаю в сценарий и запустить его принимает $ 2 в awk в качестве переданного аргумента. Я пробовал одинарную, двойную и тройную обратную косую черту в $, но ничего не работает.
Одиночный побег приводит к:
can't read "2": no such variable
Двойной побег приводит к:
awk: cmd. line:1 {print
awk: cmd. line:1: ^ unexpected newline or end of string
Тройной побег в результате:
awk: cmd. line:1 {print
awk: cmd. line:1: ^ unexpected newline or end of string
Поэтому я ищу способ передачи $ аргументов, которые awk использует в сценарии оболочки