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 --version
como o comando. --version
nesse 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, --version
aqui 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, $foo
será 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.