Ubuntu

如何打開 gnome-terminal 並執行複合命令

  • April 7, 2021

我在帶有 GNOME 終端 3.36.2 的 Ubuntu 20.04LTS 中。我想執行兩個命令,只有在第一個成功時才執行第二個:

proc.sh && results.sh

我想在一個單獨的終端視窗中執行它,所以我說:

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

這行得通。但我收到一個已棄用的警告,-e我應該使用--. 但是,兩者-x(也已棄用)和--都是相同的,並且會將引用文本的全部內容解釋為執行檔名稱,這當然會導致“找不到文件”錯誤。

那麼現在執行此操作的正確方法是什麼?

提示在手冊中:

--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'

引用自:https://unix.stackexchange.com/questions/643849