Prendere in considerazione:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
Nel primo esempio, tutto ciò che segue -x
viene utilizzato per l'esecuzione del comando. Quindi GNOME Terminal verrà eseguito sleep 10m --version
come comando. --version
in questo caso diventa parte del comando che deve essere eseguito dal Terminale GNOME.
Nel secondo, -e
come comando viene utilizzato solo l'argomento stringa singola , nient'altro. Quindi --version
qui è in realtà un'opzione per GNOME Terminal.
Il primo può essere più utile se si desidera eseguire una catena di comandi:
gnome-terminal -x bash -c 'command 1; command 2; ...'
Questo è difficile da fare -e
, perché l'intero comando deve essere una singola stringa, quindi dovrai citare il tutto. Questo a sua volta significa che devi stare più attento alle virgolette e all'espansione delle variabili e così:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Qui, $foo
verrà espanso dalla shell corrente.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
L'uso '
all'interno della stringa di comando implica una fastidiosa gestione delle offerte.