grep -v
Sorgularla ilgili garip bir sorunum var . Açıklamama izin ver:
Kullandığım bağlantıları görüntülemek için 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
Terminalimin akımıpts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Kullanarak kendi bağlantımı dışlamaya çalışıyorum grep -v $(tty | cut -f3-4 -d'/')
. Bu komutun beklenen çıktısı, who
bağlantım olmadan olmalıdır . Ancak, çıktı en beklenmedik:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Ben $(...)
tırnak içine alın ve bu "Böyle bir dosya veya dizin yok" sorunu gidermek gibi görünüyor. Ancak, tty ( pts/0
) yöntemim hariç tutulsa bile bağlantım hala yazdırılıyor :
$ 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)
Bu noktadan itibaren, grep
sorgunun neden hatalı çalıştığına dair hiçbir fikrim yok .
grep
"tty değil" diyorum . Bunun üstesinden gelmemi nasıl önerirsiniz?
set -x
İlk kullanmaya ne dersiniz ... Sonra komutunuzu çalıştırın ve aslında ne yapmaya çalıştığınızı görüngrep
...