我有一个与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
我将$(...)
引号引起来,这似乎可以解决“没有此类文件或目录”的问题。但是,即使pts/0
应该排除我的tty(),我的连接仍然会打印:
$ 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
查询为什么会出现故障。
@don_crissti啊,我明白了;告诉我我实际上是在
—
也许maybeharry
grep
唱“不是tty”。您如何建议我解决这个问题?
set -x
...然后运行命令,看看您实际上在尝试什么grep
...