У меня странная проблема, связанная с grep -v
запросами. Позвольте мне объяснить:
Для отображения подключений я использую 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)
Ток tty
моего терминалаpts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Я пытаюсь исключить мою собственную связь, используя grep -v $(tty | cut -f3-4 -d'/')
. Ожидаемый вывод этой команды должен быть who
без моего подключения. Однако вывод наиболее неожиданный:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Я заключил $(...)
в кавычки, и это, кажется, решить проблему "Нет такого файла или каталога". Тем не менее, мое соединение все еще печатается, хотя мой tty ( pts/0
) должен был быть исключен:
$ 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)
На данный момент я абсолютно не знаю, почему grep
запрос работает неправильно.
grep
"не TTY". Как бы вы посоветовали мне обойти это?
set -x
сначала ... Затем запустите свою команду и посмотрите, что вы на самом деле пытаетесьgrep
...