来自非 bash shell 的 xclip 不持久
xclip from non-bash shell not enduring
在 bash 中,echo toast | xclip -sel c
将 toast 保存在剪贴板中,即使我关闭了终端。为什么这在其他 shell 中似乎不是持久的?
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
行并关闭了 window。剪贴板现在 空 。我试过 -display,但 display 和 xauthority 都设置正确。 pythons pyperclip 和 xerox 也出现了同样的问题。
编辑2。这个问题可以简化为这个问题:https://unix.stackexchange.com/questions/316715/xclip-works-differently-in-interactive-and-non-interactive-shells 除了使用 xsel -ib
存储剪贴板之外似乎没有其他好的选择。
尝试继续管道或重定向输出。对我来说,它在 tcl 中的工作:
exec printf "%s" $var | xclip -selection c | echo
或:
exec printf "%s" $var | xclip -selection c > /dev/null
在 bash 中,echo toast | xclip -sel c
将 toast 保存在剪贴板中,即使我关闭了终端。为什么这在其他 shell 中似乎不是持久的?
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
行并关闭了 window。剪贴板现在 空 。我试过 -display,但 display 和 xauthority 都设置正确。 pythons pyperclip 和 xerox 也出现了同样的问题。
编辑2。这个问题可以简化为这个问题:https://unix.stackexchange.com/questions/316715/xclip-works-differently-in-interactive-and-non-interactive-shells 除了使用 xsel -ib
存储剪贴板之外似乎没有其他好的选择。
尝试继续管道或重定向输出。对我来说,它在 tcl 中的工作:
exec printf "%s" $var | xclip -selection c | echo
或:
exec printf "%s" $var | xclip -selection c > /dev/null