Enviando conteúdo para a área de transferência através de um script Bash

1

Se eu faço echo foo | xclip -i no terminal e então Ctrl + V , eu recebo foo .

Mas, em vez disso, se eu escrever um arquivo,

bar.sh

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

e executar ./bar.sh no terminal, o conteúdo da área de transferência não se torna "bar" como seria de esperar.

Por quê? E como faço para isso?

Eu consegui fazer isso mudando a linha echo bar | xclip -i para echo bar | xclip -selection c , mas por que esse caminho funciona e o outro não?

    
por Faccion 13.01.2016 / 09:28

1 resposta

1

Quando você usa o comando

echo bar | xclip -i

xclip armazena o texto em seu primary register, que pode ser acessado com o botão do meio do mouse. de man xclip

  

-selection
                Especifique qual X opção usar, as opções são "primárias" para usar XA_PRIMARY (padrão), "secundário" para XA_SECONDARY ou "clipboard" para                 XA_CLIPBOARD

Quando você usa

echo bar | xclip -selection c

bar está sendo capturado no registro clipboard de xclip - Acredito que c é um alias para clipboard .
É estranho o comando echo bar | xclip -i then Ctrl + v funcionou - não funciona para mim. Gostaria de saber se você tinha foo na sua área de transferência de um comando anterior?

    
por the_velour_fog 13.01.2016 / 10:25