Mam dziwny problem związany z grep -vzapytaniami. Pozwól mi wyjaśnić:
Do wyświetlania połączeń używam 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)
Obecny ttymój terminal topts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Próbuję wykluczyć własne połączenie za pomocą grep -v $(tty | cut -f3-4 -d'/'). Oczekiwany wynik tego polecenia powinien być whobez mojego połączenia. Jednak wynik jest najbardziej nieoczekiwany:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Załączam $(...)cytaty i wydaje się, że to rozwiązuje problem „Brak takiego pliku lub katalogu”. Jednak moje połączenie jest nadal drukowane, mimo że moja tty ( pts/0) powinna zostać wykluczona:
$ 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)
W tej chwili nie mam pojęcia, dlaczego grepzapytanie działa nieprawidłowo.
grep„nie jestem tty”. Jak sugerowałbyś, żebym to obejść?
set -xnajpierw użyjesz ... Następnie uruchom polecenie i zobacz, co tak naprawdę próbujeszgrep...