如何运行 gnome-terminal 将参数传递给命令并保持命令窗口打开和交互

如何运行 gnome-terminal 将参数传递给命令并保持命令窗口打开和交互

这适用于 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"

关键点是:

  1. GNOME 使用--双破折号将 GNOME 终端参数与要运行的命令分隔开。

  2. 要运行多个命令,您需要运行bash -c.通过传递echo hello; exec bash原因你好输出,然后将原始 bash 替换为新的 bash,该新的 bash 将成为您的交互式终端。

相关内容