Поміркуйте:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
У першому прикладі все після -xвикористовується для виконання команди. Отже, термінал GNOME запускається sleep 10m --versionяк команда. --versionу цьому випадку стає частиною команди, яку слід виконувати терміналом GNOME.
По-друге, -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}'\''"'
Використання 'всередині командного рядка включає дратівливу обробку цитат.