我知道xsel
和xclip
,(也在以下内容中讨论过:https://stackoverflow.com/questions/749544/pipe-to-from-the-clipboard),并经常使用它们。
但是,现在我想将主剪贴板转储到标准输出,但处于“跟随模式”。目前,如果我尝试这样做:
$ xclip -o
Currently, if I try this:
$ xsel -o
Currently, if I try this:
$
...命令立即退出。
相反,我想要的是一种类似于tail -f /var/log/syslog
- 即“跟随模式”的行为:tail
阻止终端,每当文件中显示新行时,它会将其转储到标准输出。
我想要类似的东西,但是每当我制作新副本时(即,在终端中按 Ctrl-C 或 Ctrl-Shift-C),即每当我更改主剪贴板内容时。
有没有命令可以帮助我做到这一点bash
?
答案1
好的,这是一个 python 解决方案。我认为它不需要评论,它完全符合要求,但如果我的假设是错误的,请告诉我。
#!/usr/bin/env python
import sys
import signal
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk
def pcallBack(*args):
print pclip.wait_for_text()
if __name__ == '__main__':
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
pclip = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY)
pclip.connect('owner-change',pcallBack)
Gtk.main()