[BASH] Problemas con sintaxis

Iniciado por lubix89, 8 Mayo 2013, 14:36 PM

0 Miembros y 1 Visitante están viendo este tema.

lubix89

Para no hacerlo tedioso intentare explicarme lo mas breve y claramente posible.

ps x | grep -v grep | grep -v xterm | grep -w aireplay-ng | awk '{print $11}' | grep -w -v -f /tmp/macs

Ese comando me esta sacando las macs que esta ejecutando el aireplay y que no estan en radio de alcance.

El archivo /tmp/macs es una lista de macs obtenidas de un escaneo "iwlist"

Para matar procesos en funcion del comando que usan hago un ps -x y hago un grep por mac para obtener los PID de los aireplay que se estan ejecutando.

kill $(ps x | grep 'DIRECCION MAC' | awk '{print $2}')
De esta manera me cargo los procesos que coincidan con las macs puestas en el grep.

Mi problema es que necesito hacer que el grep de este ultimo codigo obtenga las macs directamente del resultado del primer codigo.

Algo tal que asi:

kill $(ps x | grep 'ps x | grep -v grep | grep -v xterm | grep -w aireplay-ng | awk '{print $11}' | grep -w -v -f /tmp/macs' | awk '{print $2}')

Logicamente el comando de arriva me da error. Alguien me puede hechar un cable?

Saludos y gracias

-Myx-

Yo haria algo como esto:

ps -C aireplay-ng u | fgrep -v -f /tmp/macs | awk '{print $1}' | xargs kill

Tu comando esta dificil de fixear:

1)Para que tu codigo funcione creo que deberias cambiar las comillas simples por algun simbolo de command substitution "``" comilla invertida o "$()"

2) aun asi...le estas pasando varias macs a grep...y grep no funciona asi