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,
#!/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?
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?