Rozważać:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
W pierwszym przykładzie wszystko, co następuje, -xjest używane do wykonania polecenia. Terminal GNOME będzie działał sleep 10m --versionjako polecenie. --versionw takim przypadku staje się częścią polecenia uruchamianego przez terminal GNOME.
Po drugie, -ejako polecenie używany jest tylko argument o pojedynczym ciągu , nic więcej. Więc --versiontutaj jest właściwie opcja dla GNOME Terminal.
Pierwszy może być bardziej przydatny, jeśli chcesz uruchomić łańcuch poleceń:
gnome-terminal -x bash -c 'command 1; command 2; ...'
Jest to trudne do wykonania -e, ponieważ całe polecenie musi być pojedynczym ciągiem, więc będziesz musiał zacytować całość. To z kolei oznacza, że musisz bardziej uważać na cytaty i zmienne rozwinięcie i takie:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Tutaj $foozostanie rozszerzony o bieżącą powłokę.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
Używanie 'wewnątrz ciągu poleceń wiąże się z irytującą obsługą cytatów.