Как передать содержимое буфера обмена в gnome-терминал?
У меня есть плагин, который генерирует и копирует в буфер обмена готовую к вставке команду. Сейчас я открываю новый терминал, вставляю команду и выполняю ее. Я хочу написать скрипт, который автоматически открывает новый терминал и запускает эту команду, используя буфер обмена в качестве входных данных.
Я пытался использовать xclip, но не могу понять, как передать его вывод в gnome-терминал, и все потоки, которые я видел, фокусируются на противоположной проблеме: сохранение вывода команды в буфер обмена, а это НЕ то, что я хочу делать.
Что я пробовал: xclip -se c -o | gnome-terminal -e
Он говорит: "Не удалось разобрать аргументы: отсутствует аргумент для -e". Так что, по крайней мере, у меня есть проблема с синтаксисом.
У меня есть ощущение, что я не могу подходить к этой проблеме правильным способом. Полный нуб здесь, так что чем больше деталей, тем лучше!
Спасибо!
1 ответ
Это похоже на gnome-terminal
не может получить ввод из стандартного ввода, поэтому вы должны использовать подстановку команд:
gnome-terminal -e "$(xclip -se c -o)"
Кроме того, если вы хотите выполнить разбиение слов и глобализацию содержимого буфера обмена до его запуска, вы можете использовать это:
gnome-terminal -x $(xclip -se c -o)
Если вам нужно держать терминал открытым после завершения команды, вы можете использовать это:
gnome-terminal -x bash -c "$(xclip -se c -o); read -p 'Press Enter to close.'"
Или, если вы хотите перейти к интерактивной подсказке:
gnome-terminal -x bash -c "$(xclip -se c -o); bash"
Дополнительные идеи см. В разделе " Средство запуска для приложения терминала". Как сохранить терминал открытым после завершения программы?