El estado de las páginas man:
-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 qué se refiere la "línea de comando" en el segundo ejemplo? ¿Y cuál es su "resto"? ¿Podría dar un ejemplo en el que estas dos opciones difieran? ¿O son básicamente lo mismo?
command-line
gnome-terminal
stackzebra
fuente
fuente
Respuestas:
Considerar:
En el primer ejemplo, todo lo que
-x
sigue se usa para ejecutar el comando. Entonces GNOME Terminal se ejecutarásleep 10m --version
como el comando.--version
en este caso se convierte en parte del comando que ejecutará GNOME Terminal.En el segundo, solo
-e
se utiliza el argumento de cadena única como comando, nada más. Entonces,--version
aquí hay una opción para GNOME Terminal.El primero puede ser más útil si desea ejecutar una cadena de comandos:
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:Aquí,
$foo
se expandirá por el shell actual.Usar
'
dentro de la cadena de comando implica un manejo molesto de comillas.fuente