我做了以下观察:
$ xclip text.txt
执行立即终止,它将 的内容复制text.txt
到默认选择XA_PRIMARY
,这意味着您可以通过鼠标中键或xclip -o
.
当我想查看 xclip 正在做什么时,它不再终止:
$ xclip -verbose text.txt
Connected to X server.
Using UTF8_STRING.
Reading text.txt...
Waiting for selection requests, Control-C to quit
Waiting for selection request number 1
它不会终止,直到我在 X11 系统中选择某些东西,例如我粘贴在这里的这个输出。我会理解这一点,如果行为仅限于verbose
. 毕竟你想坐下来看看会发生什么。
我可以用 重现相同的行为strace
,但前提是提供了 fork 选项
$ strace -f xclip text.txt
或者当使用应该返回输出的系统执行命令从 Ruby 中退出时,实际上什么都不是。
$ ruby -e "`xclip text.txt`"
给出的提示strace
是它正在轮询文件描述符以等待事件。如果我选择一些东西,这个事件就很满意。这种行为可以解释吗?我已经得到证据,这在任何系统上都无法重现。这可能与票证#9 在从标准输入设置剪贴板时未关闭标准输出有关吗?
我xclip
在 Ubuntu 13.04 上运行 0.12 版。