如果我echo foo | xclip -i
在终端然后Ctrl+ V,我得到foo
.
但是相反,如果我写一个文件,
#!/bin/sh
echo bar | xclip -i
Run Code Online (Sandbox Code Playgroud)
并./bar.sh
在终端中运行,剪贴板内容不会像我期望的那样变成“条”。
为什么?我该如何做到这一点?
我设法将行更改echo bar | xclip -i
为echo bar | xclip -selection c
,但为什么这种方式有效而另一种方式无效?
当你使用命令
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
寄存器中捕获- 我猜c
是clipboard
. then +命令工作
很奇怪- 它不适合我。我想知道您的剪贴板中是否有以前的命令?echo bar | xclip -i
Ctrlvfoo