Rozważać:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
W pierwszym przykładzie wszystko, co następuje, -x
jest używane do wykonania polecenia. Terminal GNOME będzie działał sleep 10m --version
jako polecenie. --version
w takim przypadku staje się częścią polecenia uruchamianego przez terminal GNOME.
Po drugie, -e
jako polecenie używany jest tylko argument o pojedynczym ciągu , nic więcej. Więc --version
tutaj 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 $foo
zostanie 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.