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