web-dev-qa-db-fra.com

Envoi de contenu dans le Presse-papiers via un script Bash

Si je fais echo foo | xclip -i dans le terminal puis Ctrl + V, Je reçois foo.

Mais au lieu de cela, si j'écris un fichier,

bar.sh

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

et exécutez ./bar.sh dans le terminal, le contenu du presse-papiers ne devient pas "barre" comme je l’attendais.

Pourquoi? Et comment puis-je le faire pour le faire?

J'ai réussi à le faire en changeant la ligne echo bar | xclip -i en echo bar | xclip -selection c, mais pourquoi cette méthode fonctionne-t-elle et l'autre pas?

1
Faccion

Quand vous utilisez la commande

echo bar | xclip -i

xclip enregistre le texte dans son registre primary, accessible avec le bouton central de la souris. de man xclip

-sélection
spécifie quelle sélection X utiliser, les options sont "primaires" à utiliser XA_PRIMARY (par défaut), "secondaires" pour XA_SECONDARY ou "presse-papiers" pour XA_CLIPBOARD

Quand vous utilisez

echo bar | xclip -selection c

bar est capturé dans le registre clipboard de xclip - je suppose que c est un alias pour clipboard.
Son étrange le echo bar | xclip -i alors Ctrl + v la commande a fonctionné - ça ne me convient pas. Je me demande si vous aviez foo dans votre presse-papiers à partir d'une commande précédente?

2
the_velour_fog