在Bash脚本中管道往返剪贴板

▼魔方 西西 提交于 2019-12-17 20:38:28

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

是否可以在Bash中管道进出剪贴板?

无论是与设备手柄之间的管道连接还是使用辅助应用程序,我找不到任何东西。

例如,如果/dev/clip是链接到剪贴板的设备,我们可以这样做:

cat /dev/clip        # Dump the contents of the clipboard
cat foo > /dev/clip  # Dump the contents of "foo" into the clipboard

#1楼

复制并粘贴到Windows中的剪贴板(Cygwin):

看到:

$ clip.exe - ?

CLIP描述:将命令行工具的输出重定向到Windows剪贴板。 然后可以将此文本输出粘贴到其他程序中。 参数列表:/? 显示此帮助消息。 示例:DIR | CLIP将当前目录列表的副本放入Windows剪贴板。 CLIP <README.TXT将readme.txt中的文本副本放在Windows剪贴板上。

还存在getclip(可以代替shift + ins!),putclip(echo oaeuoa | putclip.exe把它放到剪辑中)


#2楼

这是一个随时可用的bash脚本,用于读取可在多个平台上运行的剪贴板。 如果您添加功能(例如更多平台),请在此处编辑脚本。

#!/bin/bash
# WF 2013-10-04
# multi platform clipboard read access
# supports
#   Mac OS X
#   git shell / Cygwin (Windows)
#   Linux (e.g. Ubuntu)

#
# display an error
#
error() {
  echo "error: $1" 1>&2
  exit 1
}

#
# getClipboard
#
function getClipboard() {
 os=`uname`
      case $os in 
        # git bash  (Windows)
        MINGW32_NT-6.1)
          cat /dev/clipboard;;
        # Mac OS X
        Darwin*)
          pbpaste;;  
        # Linux 
        Linux*)
          # works only for X clipboard - a check that X is running might be due
          xclip -o;;
        *)
          error "unsupported os $os";;
      esac
}

tmp=/tmp/clipboard$$
getClipboard >$tmp
cat $tmp
# comment out for debugging
rm $tmp

#3楼

我几年前写的一些Windows程序。 它们允许您转储,推送,追加和打印剪贴板。 它的工作原理如下:

dumpclip | perl -pe "s/monkey/chimp/g;" | pushclip

它包括源代码: cmd_clip.zip


#4楼

仅适用于Mac:

echo "Hello World" | pbcopy
pbpaste

它们位于/usr/bin/pbcopy/usr/bin/pbpaste


#5楼

安装

# You can install xclip using `apt-get`
apt-get install xclip

# or `pacman`
pacman -S xclip

# or `dnf`
dnf install xclip

如果您无法访问apt-getpacman ,也无法访问dnf ,则源代码可在sourceforge上获得

建立

巴什

~/.bash_aliases ,添加:

alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"

不要忘记使用加载新配置. ~/.bash_aliases . ~/.bash_aliases或重新启动您的个人资料。

~/.config/fish/config.fish ,添加:

abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"

不要忘记通过重新启动终端来重新启动fish实例以应用更改。

用法

您现在可以使用setclipgetclip ,例如:

$ echo foo | setclip
$ getclip
foo
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!