Ах. Понимаю. Два сообщения на самом деле различны.
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
Я думаю, это означает, что вместо этого следует использовать -x
- все в командной строке после -x
считается частью команды, которая должна бытьВыполнено.
# Use “-- ” to terminate the options and put the command line to execute after it.
Это соглашение, используемое в программах командной строки. Две черты указывают, что все, что приходит после, независимо от того, имеет ли оно черту, является , а не параметром командной строки. Это полезно в сочетании с -x
, потому что у вас могут быть вещи, которые вы не хотите анализировать, как один из параметров gnome-терминала - скорее это аргументы командной строки для запуска внутри в терминале.
Я думаю, что пример, вероятно, сделает это более понятным ...
gnome-terminal -x -- grep -v "42" hitchikers_guide_to_the_galaxy.txt
Это откроет терминал гнома. Внутри терминала мы запускаем grep и исключаем любую строку, содержащую строку «42». Если бы мы не использовали --
, gnome-терминал увидит -v
в качестве аргумента командной строки gnome-terminal
и, вероятно, выдаст предупреждение о том, что -v
не является допустимым аргументом для gnome-терминала.
Редактировать:
Хорошо, поэтому -x
и -c
устарели. Вы можете выполнять команды без каких-либо флагов. Это требует использования --
для завершения всех других опций ... так что я почти ошибся во всем, что я сказал. Обоснование было твердым, просто неправильным.
gnome-terminal -- nano
откроет новый терминал и запустит nano внутри терминала.
При попытке
gnome-terminal -- echo foo
* 1041 все становится непросто* Он работает, но выходит так быстро, что вы не видите ничего, кроме вспышки на экране.
Обратите внимание, что есть также открытая ошибка об устаревании -c
:
https://bugzilla.gnome.org/show_bug.cgi?id=784925