我正在尝试回答另一个问题:用于启动终端的命令/脚本,输入文本但不执行...。我想启动终端并向其添加特定文本不执行,从而允许我在执行之前将一些其他变量文本复制到其中。就像粘贴sudo apt install mpv
到终端时末尾没有空格一样:该命令不会启动,但允许添加其他要安装的程序。
我已经接近使用 的解决方案xsel
,它可以使用快捷方式将命令发送到终端。
要使用的命令可以是类似的
bash -c "xsel -ib <<< 'MY_TEXT'"
或者
bash -c "xsel -p <<< 'MY_TEXT'"
因此,我可以使用一个快捷方式将该文本发送到剪贴板,使用另一个快捷方式打开终端,然后将xsel
复制的内容粘贴到剪贴板。
问题是该xsel
命令将末尾带有空格或 Enter 的文本发送到剪贴板
它MY_TEXT
代替了MY_TEXT
sudo apt install mpv
这就像自动运行安装命令和sudo apt install mpv
等待我按 Enter之间的区别。
答案1
这里的字符串附加一个换行符。如果避免这种情况,您将不会在粘贴的文本中得到换行符:
bash -c 'printf "%s" "MY_TEXT" | xsel -p'