将shell脚本输出复制到剪贴板

Vam*_*a B 27 bash shell

有没有简单的方法从shell脚本的输出实现复制到剪贴板选项?

pax*_*blo 35

这可能取决于您正在使用的环境.至少使用Gnome(我没有尝试过其他但可能有效),您可以按如下方式输出输出:

echo 123 | xclip
echo 123 | xclip -sel clip
Run Code Online (Sandbox Code Playgroud)

第一个进入鼠标剪贴板,第二个进入"普通"剪贴板.

  • 当然,请记住 xclip 并不总是默认分发和安装的,因此您可能不想使用它,除非您确定您的客户端拥有它。未来的读者可能想要检查 xclip 的源代码是否可以在脚本环境中使用,或者找到一个执行此操作的脚本,即使它是在 perl 中,或者至少在大多数发行版上默认安装了 perl。 (2认同)
  • 略有不同:通过将 `printf` 替换为 `echo` 进行复制,不带尾随换行符。即,`printf 123 | xclip -sel 剪辑` (2认同)

Mau*_*Mau 30

您可以使用pbcopyMac OS本机.

试试这个命令:

echo "variable" | pbcopy
Run Code Online (Sandbox Code Playgroud)

它会将字符串"variable"复制到剪贴板中.

  • 请使用“-n”作为“echo”,这样它就不会在复制文本的末尾添加换行符。 (2认同)

Mar*_*ler 8

如果你在 Windows 10 LXXS Ubuntu bash 上这样做,你可以执行以下命令,也可以在 WSL2 上工作。

从 WSL 复制到 Windows 剪贴板

echo "What so ever..." | clip.exe
Run Code Online (Sandbox Code Playgroud)

将 Windows 剪贴板通过管道传输到 WSL 的另一种方式可以在 PowerShell 的帮助下完成。它有一个名为的命令Get-Clipboard和一个很好的简短别名gcb

从 Windows 剪贴板粘贴到 WSL

powershell.exe -Command gcb | cat
Run Code Online (Sandbox Code Playgroud)

如果您更频繁地使用它,您可以在 bash 中创建一个别名,例如

alias wcopy="powershell.exe -Command gcb"
Run Code Online (Sandbox Code Playgroud)

然后快速用作

wcopy | cat
Run Code Online (Sandbox Code Playgroud)


dog*_*ane 6

您可以使用该xclip命令.

 echo hello | xclip
Run Code Online (Sandbox Code Playgroud)

获取说明xclip这里.


Mic*_*tin 5

echo最后也会打印换行符。如果其他人遇到同样的问题,我使用 Mauro 的方法,但使用命令,printf这样它只是字符串,没有额外的行:

对于苹果机:

printf "$YOUR_VAR" | pbcopy
Run Code Online (Sandbox Code Playgroud)