通过 Bash 脚本将内容发送到剪贴板

通过 Bash 脚本将内容发送到剪贴板

如果我echo foo | xclip -i在终端中执行然后Ctrl+ V,我就会得到foo

但如果我写一个文件,

酒吧

#!/bin/sh
echo bar | xclip -i

./bar.sh并在终端中运行,剪贴板内容并没有像我预期的那样变成“条”。

为什么?我该如何做呢?

我设法通过将线路改为echo bar | xclip -i来做到这一点echo bar | xclip -selection c,但为什么这种方法有效而另一种方法无效?

答案1

当您使用命令时

echo bar | xclip -i

xclip将文本存储在其primary寄存器中,可以使用鼠标中键访问。从man xclip

-selection
指定使用哪个 X 选择,选项为“primary”表示使用 XA_PRIMARY(默认),“secondary”表示使用 XA_SECONDARY,或“clipboard”表示使用 XA_CLIPBOARD

当你使用

echo bar | xclip -selection c

bar正在 xclip 的寄存器中被捕获clipboard- 我猜c是 的别名clipboard
奇怪的是echo bar | xclip -ithen Ctrl+v命令有效 - 对我来说却无效。我想知道foo您的剪贴板中是否有上一个命令的内容?

相关内容