Ubuntu
如何打開 gnome-terminal 並執行複合命令
我在帶有 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'