Tengo un problema extraño relacionado con las grep -v
consultas. Permítame explicarle:
Para mostrar las conexiones que uso who
:
$ who
harry pts/0 2016-12-08 20:41 (192.168.0.1)
james pts/1 2016-12-08 19:28 (192.168.0.1)
timothy pts/2 2016-12-08 02:44 (192.168.0.1)
La corriente tty
de mi terminal espts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Intento excluir mi propia conexión usando grep -v $(tty | cut -f3-4 -d'/')
. El resultado esperado de este comando debería ser who
, sin mi conexión. Sin embargo, la salida es más inesperada:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Adjunto las $(...)
comillas y eso parece solucionar el problema "No existe tal archivo o directorio". Sin embargo, mi conexión todavía se imprime a pesar de que mi tty ( pts/0
) debería haberse excluido:
$ who | grep -v "$(tty | cut -f3-4 -d'/')"
harry pts/0 2016-12-08 20:41 (192.168.0.1)
james pts/1 2016-12-08 19:28 (192.168.0.1)
timothy pts/2 2016-12-08 02:44 (192.168.0.1)
A partir de este punto, no tengo ni idea de por qué la grep
consulta no funciona correctamente.
grep
"no es un tty". ¿Cómo sugerirías que evite esto?
set -x
primera ... A continuación, ejecute el comando y ver lo que realmente está tratando degrep
...