Как передать переменную awk
в команду bash
в пределах awk
?Как передать переменную awk команде bash
Я использую awk для вычисления текущей суммы потоков для каждого из определенных процессов, но затем я хочу использовать каждый pid для доступа к файловой системе /proc/$pid
.
Ниже приведена строка с номером , разбитая на, потому что $pid
не существует.
Как я могу экспортировать переменную awk pid
в команду оболочки, которую я запускаю для запуска awk
?
(Разрывы строк добавлены для читаемости)
$ ps -ALf | grep $PROC | grep -v grep | \ # get each pid
awk '{threads[$2]+=1} END \ # count num threads per pid
{ \
for (pid in threads) \
"cat /proc/$pid/cwd"|getline cwd; \ # get 'cwd' (**broken**)
print cwd ": " threads[pid] \ # display 'cwd' and num threads
}'
Почему бы не сделать всю работу в awk? – Johnsyweb
Не выполняйте 'grep ... | grep -v ... | awk ...', так как awk может выполнять работу grep (s).В linux вы можете использовать 'ps -C $ PROC' для отображения только определенных процессов (имен). – TrueY