如何打开 gnome 终端并运行复合命令

如何打开 gnome 终端并运行复合命令

我使用的是带有 GNOME Terminal 3.36.2 的 Ubuntu 20.04LTS。我想运行两个命令,仅当第一个命令成功时才执行第二个命令:

proc.sh && results.sh

我想在单独的终端窗口中运行它,所以我说:

gnome-terminal -e 'proc.sh && results.sh'

这有效。但我收到一条已弃用的警告-e,我应该使用--.但是,两者-x(也已弃用)和--是相同的,并且会将引用文本的全部内容解释为可执行文件名称,这当然会导致“找不到文件”错误。

那么现在执行此操作的正确方法是什么?

答案1

说明书上有提示:

--command-e=COMMAND
以与 shell 相同的方式将此选项的参数拆分为程序和参数,并在终端内执行生成的命令行。

此选项已弃用。相反,应使用--来终止选项,并将程序和参数放在其后执行:例如,不使用gnome-terminal -e "python3 -q",而是更喜欢使用gnome-terminal -- python3 -q

请注意,它COMMAND不是通过 shell 运行:它被分割成单词并作为程序执行。如果需要 shell 语法,请使用 形式gnome-terminal -- sh -c '...'

来源,强调我的)

您要运行的命令&&属于 shell 语法。你需要一个外壳来处理它。所以:

gnome-terminal -- sh -c 'proc.sh && results.sh'

相关内容