Eu tenho um problema estranho relacionado a grep -v
consultas. Permita-me explicar:
Para exibir as conexões que eu 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)
A corrente tty
do meu terminal épts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Tento excluir minha própria conexão usando grep -v $(tty | cut -f3-4 -d'/')
. A saída esperada deste comando deve ser who
, sem a minha conexão. No entanto, a saída é mais inesperada:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Eu incluo as $(...)
aspas e isso parece corrigir o problema "Esse arquivo ou diretório não existe". No entanto, minha conexão ainda é impressa, mesmo que meu tty ( pts/0
) devesse ter sido excluído:
$ 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 deste ponto, não tenho absolutamente nenhuma idéia de por que a grep
consulta está com defeito.
grep
"não é um tty". Como você sugeriria que eu contornasse isso?
set -x
em primeiro lugar ... Em seguida, execute o seu comando e ver o que você está realmente tentandogrep
...