![如何运行 gnome-terminal 将参数传递给命令并保持命令窗口打开和交互](https://linux22.com/image/229450/%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8C%20gnome-terminal%20%E5%B0%86%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%E5%91%BD%E4%BB%A4%E5%B9%B6%E4%BF%9D%E6%8C%81%E5%91%BD%E4%BB%A4%E7%AA%97%E5%8F%A3%E6%89%93%E5%BC%80%E5%92%8C%E4%BA%A4%E4%BA%92.png)
这适用于 xterm(请参阅https://unix.stackexchange.com/a/739977/119816)
xterm -e "echo hello; bash"
但不与gnome-terminal
.执行此操作的等效方法是什么gnome-terminal
?
gnome-terminal -- "echo hello; bash"
我尝试过各种引用方式,但没有成功。一些尝试是:
gnome-terminal -- "bash -c \"echo hello; bash\""
#
gnome-terminal -- /usr/bin/bash /tmp/echo-hi
/tmp/echo-hi
回显 hi 的 shell 脚本在哪里?
以及其他几种变体。
答案1
bash -c
不应出现在报价单中。
请尝试以下操作:
gnome-terminal -- bash -c "echo hello; bash"
我正在使用这个例如:
gnome-terminal --window --title "neovim" -- sh -c "nvim"
这只是在一个标题为“neovim”的新 gnome 终端窗口中执行nvim
二进制文件。sh
就我而言,sh
这只是二进制文件的链接bash
。所以你基本上可以在这里使用任何你想要的 shell 二进制文件。
答案2
这有效:
gnome-terminal -- bash -c "echo hello; exec bash"
关键点是:
GNOME 使用
--
双破折号将 GNOME 终端参数与要运行的命令分隔开。要运行多个命令,您需要运行
bash -c
.通过传递echo hello; exec bash
原因你好输出,然后将原始 bash 替换为新的 bash,该新的 bash 将成为您的交互式终端。