Tôi có một vấn đề lạ liên quan đến grep -v
truy vấn. Cho phép tôi giải thích:
Để hiển thị các kết nối tôi sử dụng 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)
Hiện tại tty
của thiết bị đầu cuối của tôi làpts/0
$ tty
/dev/pts/0
$ tty | cut -f3-4 -d'/'
pts/0
Tôi cố gắng loại trừ kết nối của riêng tôi bằng cách sử dụng grep -v $(tty | cut -f3-4 -d'/')
. Đầu ra dự kiến của lệnh này sẽ who
không có kết nối của tôi. Tuy nhiên, đầu ra là bất ngờ nhất:
$ who | grep -v $(tty | cut -f3-4 -d'/')
grep: a: No such file or directory
grep: tty: No such file or directory
Tôi gửi kèm theo $(...)
dấu ngoặc kép và điều đó dường như khắc phục vấn đề "Không có tệp hoặc thư mục như vậy". Tuy nhiên, kết nối của tôi vẫn được in ngay cả khi tty ( pts/0
) của tôi đã bị loại trừ:
$ 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)
Về điểm này, tôi hoàn toàn không biết tại sao grep
truy vấn bị trục trặc.
grep
"không phải là một tty". Làm thế nào bạn có thể đề nghị tôi nhận được xung quanh này?
set -x
đầu tiên ... Sau đó chạy lệnh của bạn và xem những gì bạn đang thực sự cố gắnggrep
...