J'ai un problème étrange lié aux grep -v
requêtes. Permettez-moi d'expliquer:
Pour afficher les connexions que j'utilise 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)
Le courant tty
de mon terminal estpts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
J'essaie d'exclure ma propre connexion en utilisant grep -v $(tty | cut -f3-4 -d'/')
. La sortie attendue de cette commande devrait être who
, sans ma connexion. Cependant, la sortie est la plus inattendue:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Je joins les $(...)
guillemets et cela semble résoudre le problème "Aucun fichier ou répertoire". Cependant, ma connexion est toujours imprimée même si mon tty ( pts/0
) aurait dû être exclu:
$ 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)
À partir de ce point, je n'ai absolument aucune idée pourquoi la grep
requête fonctionne mal.
grep
"pas un tty". Comment suggéreriez-vous que je contourne cela?
set -x
abord ... Ensuite, exécutez votre commande et voyez ce que vous essayez réellement de fairegrep
...