web-dev-qa-db-ja.com

Bashスクリプトを介してコンテンツをクリップボードに送信する

私が行った場合 echo foo | xclip -iターミナルで Ctrl + Vfooを取得します。

しかし、代わりに、ファイルを書き込むと、

bar.sh

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

./bar.shターミナルでは、クリップボードの内容が期待どおりに「バー」になりません。

どうして?そして、どうすればそうすることができますか?

行を変更してecho bar | xclip -iからecho bar | xclip -selection c、しかし、なぜこのように機能し、他の方法は機能しないのですか?

1
Faccion

コマンドを使用するとき

echo bar | xclip -i

xclipは、primaryレジスタにテキストを保存します。このレジスタは、マウスの中ボタンでアクセスできます。 man xclipから

-選択
使用するX選択を指定します。オプションは、XA_PRIMARYを使用するための「プライマリ」(デフォルト)、XA_SECONDARYの場合は「セカンダリ」、XA_CLIPBOARDの場合は「クリップボード」です。

使用するとき

echo bar | xclip -selection c

barはxclipのclipboardレジスタにキャプチャされています-cclipboardのエイリアスだと推測しています。
echo bar | xclip -iがおかしい Ctrl + v コマンドが働いた-それは私にとってはありません。前のコマンドでクリップボードにfooがあったのだろうか?

2
the_velour_fog