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

Fac*_*ion 2 clipboard xclip

如果我echo foo | xclip -i在终端然后Ctrl+ V,我得到foo.

但是相反,如果我写一个文件,

酒吧.sh

#!/bin/sh
echo bar | xclip -i
Run Code Online (Sandbox Code Playgroud)

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

为什么?我该如何做到这一点?

我设法将行更改echo bar | xclip -iecho bar | xclip -selection c,但为什么这种方式有效而另一种方式无效?

the*_*fog 6

当你使用命令

echo bar | xclip -i
Run Code Online (Sandbox Code Playgroud)

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

-selection
指定要使用的 X 选择,选项是“主要”使用 XA_PRIMARY(默认),“次要”用于 XA_SECONDARY 或“剪贴板”用于 XA_CLIPBOARD

当你使用

echo bar | xclip -selection c
Run Code Online (Sandbox Code Playgroud)

bar正在 xclip 的clipboard寄存器中捕获- 我猜cclipboard. then +命令工作
很奇怪- 它不适合我。我想知道您的剪贴板中是否有以前的命令?echo bar | xclip -iCtrlvfoo