Отправка содержимого в буфер обмена с помощью Bash-скрипта
Если я сделаю echo foo | xclip -i
в терминале, а затем Ctrl + V, я получаю foo
,
Но вместо этого, если я напишу файл,
bar.sh
#!/bin/sh
echo bar | xclip -i
и беги ./bar.sh
в терминале содержимое буфера обмена не становится "полосой", как я ожидал.
Зачем? И как мне сделать так?
Мне удалось сделать это, изменив линию echo bar | xclip -i
в echo bar | xclip -selection c
, но почему этот способ работает, а другой нет?
1 ответ
Когда вы используете команду
echo bar | xclip -i
xclip
сохраняет текст в своем primary
зарегистрироваться, которая доступна с помощью средней кнопки мыши. от man xclip
-подбор
укажите, какой выбор X использовать, параметры являются "первичными" для использования XA_PRIMARY (по умолчанию), "вторичными" для XA_SECONDARY или "буфером обмена" для XA_CLIPBOARD
Когда вы используете
echo bar | xclip -selection c
bar
захватывается в Xclip's clipboard
зарегистрироваться - наверное c
это псевдоним для clipboard
,
Это странно echo bar | xclip -i
тогда команда Ctrl + v сработала - это не для меня. Интересно, был ли у вас foo
в вашем буфере обмена от предыдущей команды?