如何打开一个额外的控制台并使用一个命令在其中运行程序?

J.R*_*.R. 10 gnome-terminal xterm

所以我知道如果我输入 gnome-terminal 或 xterm,会弹出一个新窗口。然后我检查了这两个的手册页,没有找到相关的内容。

然后我注意到在 Mac 下你可以在打开程序的情况下进行。但在 Linux 下似乎不是那么简单。

有没有人有经验?

pa4*_*080 20

我更愿意使用-x提供比-e以下更可靠工作的选项:

gnome-terminal -x bash -c "<my command or script>; exec bash"
Run Code Online (Sandbox Code Playgroud)
  • 该选项-x意味着--execute - 终端内命令行的其余部分。

  • 我们的命令是bash -c "<commands>". 这意味着我们执行一个新的bashshell,它应该运行一些-c "<commands>".

  • 我们有两个分隔(用分号; == new line<commands>

  • 第一个命令<my command or script>将执行我们想要的。

  • 第二个命令exec bash有一个含义 - 保持打开当前gnome-terminal窗口。还有另一种可能的方法来做到这一点。在当前情况下,该命令exec用新进程映像替换当前进程映像- 换句话说,它将“终止”当前进程并bash在当前 PID 下执行新的 ( )。


更新:-x/-e语法现在已经过时- Ubuntu的18.04。新推荐的方式是:

gnome-terminal -- bash -c "<我的命令或脚本>; exec bash"
  • 如果要在上述命令中访问用户主目录,请使用环境变量$HOMEbash -c "cd $HOME/; ..."

此格式的更多用法示例:

  • 优秀的答案!以下是如何使其与 shell 无关,如果用户将其设置为默认值,则启动 ZSH 或另一个 shell:`gnome-terminal -- $SHELL -c "echo 123; exec $SHELL"` (2认同)