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
...