Поміркуйте:
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}'\''"'
Використання '
всередині командного рядка включає дратівливу обробку цитат.