Considerar:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
No primeiro exemplo, tudo depois -xé usado para que o comando seja executado. Portanto, o Terminal GNOME será executado sleep 10m --versioncomo o comando. --versionnesse caso, torna-se parte do comando a ser executado pelo Terminal GNOME.
No segundo, apenas o argumento de cadeia única -eé usado como comando, nada mais. Então, --versionaqui está uma opção para o Terminal GNOME.
O primeiro pode ser mais útil se você deseja executar uma cadeia de comandos:
gnome-terminal -x bash -c 'command 1; command 2; ...'
Isso é difícil -e, porque o comando inteiro precisa ser uma única sequência, portanto, você terá que citar a coisa toda. Por sua vez, isso significa que você precisa ter mais cuidado com cotações e expansão de variáveis e assim:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
Aqui, $fooserá expandido pelo shell atual.
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
O uso 'dentro da cadeia de comando envolve manipulação irritante de cotações.