Stan stron podręcznika:
-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the terminal.
Do czego odnosi się „linia poleceń” w drugim przykładzie? A jaka jest jego „reszta”? Czy możesz podać przykład, w którym te dwie opcje się różnią? Czy są w zasadzie takie same?
command-line
gnome-terminal
stackzebra
źródło
źródło
Odpowiedzi:
Rozważać:
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ń:
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:Tutaj
$foo
zostanie rozszerzony o bieżącą powłokę.Używanie
'
wewnątrz ciągu poleceń wiąże się z irytującą obsługą cytatów.źródło