Estado das páginas de manual:
-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the terminal.
A que se refere a "linha de comando" no segundo exemplo? E qual é o seu "restante"? Você poderia dar um exemplo em que essas duas opções diferem? Ou eles são basicamente os mesmos?
command-line
gnome-terminal
stackzebra
fonte
fonte
Respostas:
Considerar:
No primeiro exemplo, tudo depois
-x
é usado para que o comando seja executado. Portanto, o Terminal GNOME será executadosleep 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:
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:Aqui,
$foo
será expandido pelo shell atual.O uso
'
dentro da cadeia de comando envolve manipulação irritante de cotações.fonte