Рассмотреть возможность:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
В первом примере все после -x
используется для выполнения команды. Поэтому GNOME Terminal будет работать sleep 10m --version
как команда. --version
в этом случае становится частью команды, запускаемой GNOME Terminal.
Во втором случае в -e
качестве команды используется только один строковый аргумент , ничего больше. Так --version
что на самом деле здесь есть опция для GNOME Terminal.
Первый может быть более полезным, если вы хотите запустить цепочку команд:
gnome-terminal -x bash -c 'command 1; command 2; ...'
Это трудно сделать -e
, потому что вся команда должна быть единственной строкой, поэтому вам придется заключать в кавычки всю эту вещь. Это, в свою очередь, означает, что вам нужно быть более осторожным с кавычками и расширением переменных, и такими:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Здесь $foo
будет развернута текущая оболочка.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
Использование '
внутри командной строки включает в себя раздражающую обработку кавычек.