Попытка захватить и использовать ответ из скрипта, который работает внутри Bash

Вот еще несколько вариантов, которые не требуют предварительного знания первой строки:

perl -ne 'print unless $_ eq $k; $k=$_ if $.==1; 

Флаг -n указывает perl зациклить входной файл, сохраняя каждую строку как $_. Флаг $k=$_ if $.==1; сохраняет первую строку ($. - это номер строки, поэтому $.==1 будет верно только для первой строки) как $k. print unless $k eq $_ печатает текущую строку, если она не совпадает с сохраненной в $k.

Альтернативно, то же самое в awk:

awk '$0!=x;(NR==1){x=$0}' file 

Здесь мы проверяем, совпадает ли текущая строка с тем, что сохранено в переменной x. Если тест $0!=x равен true (если текущая строка $0 не совпадает с x), то строка будет напечатана, так как по умолчанию awk печатает истинные выражения. Первая строка (NR==1) сохраняется как x. Поскольку это делается после проверки соответствия текущей строки x, это гарантирует, что первая строка также будет напечатана.

0
16.12.2018, 13:06
1 ответ

Вы хотите

 PID=$(ps -ef|grep -v grep |grep '$p' | awk '{print $2}')

Но ИМХО вы должны найти способ получить PID процесса более прямым способом. Разве они не оставляют где-нибудь файл «.pid»? И нужно ли suдля выдачи стопа?

0
28.01.2020, 04:07

Теги

Похожие вопросы