Tengo una línea de comando que genera una línea de comando diferente, por ejemplo:
> commandlineA param1 param2
commandlineB param1
Me gustaría tener una ejecución de línea de comando única que ejecute la línea de comando B con los parámetros dados.
¿Hay alguna manera simple de hacerlo usando una sola línea de comando o necesito ejecutar un pequeño archivo bash que almacenará el resultado en una variable y luego lo ejecutará?
Gracias
ubuntu
command-line
bash
Lior Ohana
fuente
fuente
Respuestas:
Parece que lo resolvió usted mismo, pero puede usar:
Edición de edición: lo siguiente es un tanto incorrecto, aunque ejecuta el comando en una subshell, resulta que las variables de entorno aún estarán disponibles. Perdón por engañar a la gente ...
Editar: que se ejecutará en una subshell, no se utilizarán variables de entorno no exportadas Si desea ejecutar un comando en el mismo shell, debe usar:
Otra respuesta dada es canalizar a través de bash mismo:
Eso también se ejecutará en un subshell, para ejecutar en el mismo shell necesitará:
Por cierto, también puede usar ticks de retroceso en lugar de la sintaxis $ (), pero no se recomienda .
fuente
eval
aquí. Si tiene un motivo, explíquelo. (3) Su último ejemplo (con-c
) está totalmente equivocado.Utilizar este:
Ejemplo:
Salida:
fuente
$(commandlineA param1 param2)
printf '\143\144\040\057\n' | bash
en última instancia, no funciona, porque el comando se ejecuta en un nuevo proceso de shell separado (y transitorio). Por el contrario,$(printf '\143\144\040\057\n')
hará que el shell actual, activo e interactivo cambie de directorio.