Ho uno strano problema relativo alle grep -v
query. Mi permetta di spiegare:
Per visualizzare le connessioni che utilizzo 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 corrente tty
del mio terminale èpts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Tento di escludere la mia connessione utilizzando grep -v $(tty | cut -f3-4 -d'/')
. L'output previsto di questo comando dovrebbe essere who
, senza la mia connessione. Tuttavia, l'output è più imprevisto:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Allego le $(...)
virgolette e sembra che risolva il problema "Nessun file o directory". Tuttavia, la mia connessione è ancora stampata anche se il mio tty ( pts/0
) avrebbe dovuto essere escluso:
$ 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 partire da questo momento, non ho assolutamente idea del perché la grep
query non funzioni correttamente.
grep
non sono un "tty". Come mi consiglieresti di aggirare questo?
set -x
prima ... Quindi esegui il tuo comando e vedi cosa stai effettivamente cercando digrep
...