Отправка содержимого в буфер обмена с помощью 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 в вашем буфере обмена от предыдущей команды?