Pregunta

Este comando tiene una salida vacía.

su user -c "ABC=abc;echo $ABC"

Cualquier idea, ¿cómo puedo definir una variable en el comando de entrada?

¿Fue útil?

Solución

Cambiar sus cotizaciones a comillas simples. Las comillas dobles permiten la variable a ser sustituido en el entorno actual en el que no está establecido aún. Para ver la diferencia, probar su versión con $USER y compararlo con éste:

su user -c 'ABC=abc; echo $ABC; echo $USER'

Otros consejos

Si se utiliza una variante shell bourne:

ABC=abc su user -c 'echo $ABC'

Si no es así, el uso env.

env ABC=abc su user -c 'echo $ABC'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top