ฉันมีปัญหาแปลก ๆ เกี่ยวกับ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
...