У мене дивне питання, пов’язане із 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
...