3

在 bash 中,echo toast | xclip -sel c将吐司保存在剪贴板中,即使我关闭终端也是如此。为什么这似乎与其他外壳不持久?

python3.5:

import os
os.system("echo toast | xclip -sel c")

完成这项工作,但是当我按 时CtrlC,剪贴板是空的。一个简单CtrlD的不清除剪贴板/工作正常

tclsh:

exec /bin/echo toast | xclip -sel c

甚至保持进程打开,所以我必须终止它。

这是一个错误吗?这怎么可能?还是我误会了什么?

编辑。无法找到解决方案。我制作了一个wish(Tcl/Tk)脚本,包含exec /bin/echo toast | xclip -sel c一行并关闭了窗口。剪贴板现在是的。我试过-display,但显示和xauthority都设置正确。python pyperclip 和 xerox 也出现了同样的问题。

编辑2。这个问题可以简化为这个问题:https ://unix.stackexchange.com/questions/316715/xclip-works-differently-in-interactive-and-non-interactive-shells似乎没有一个好的选择除了xsel -ib用于存储剪贴板。

4

1 回答 1

2

尝试继续管道或重定向输出。对我来说,它在 tcl 中的工作:

exec printf "%s" $var | xclip -selection c | echo

或者:

exec printf "%s" $var | xclip -selection c > /dev/null
于 2017-11-25T22:07:35.023 回答