在跟随模式下将剪贴板转储到标准输出(用于管道)?

在跟随模式下将剪贴板转储到标准输出(用于管道)?

我知道xselxclip,(也在以下内容中讨论过: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()

相关内容