Considerar:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
En el primer ejemplo, todo lo que -xsigue se usa para ejecutar el comando. Entonces GNOME Terminal se ejecutará sleep 10m --versioncomo el comando. --versionen este caso se convierte en parte del comando que ejecutará GNOME Terminal.
En el segundo, solo -ese utiliza el argumento de cadena única como comando, nada más. Entonces, --versionaquí hay una opción para GNOME Terminal.
El primero puede ser más útil si desea ejecutar una cadena de comandos:
gnome-terminal -x bash -c 'command 1; command 2; ...'
Esto es difícil de hacer -e, porque todo el comando debe ser una sola cadena, por lo que tendrá que citar todo. Esto, a su vez, significa que debe tener más cuidado con las cotizaciones y la expansión de variables y tales:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Aquí, $foose expandirá por el shell actual.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
Usar 'dentro de la cadena de comando implica un manejo molesto de comillas.