Shell establece las variables de entorno para el comando

1

Quiero ejecutar un programa en Terminal y establecer sus variables de entorno. Según mi investigación, uno puede hacer esto usando:

VARIABLE="value" VARIABLE2="value2" run_program

Ahora me gustaría establecer una variedad de variables usando un archivo de configuración. De hecho, podría inyectar variables en el shell activo usando:

. program_variables.config

Entonces puedo usar echo $VARIABLE en el terminal.

De todos modos, cuando ahora corro

. program_variables.config run_program

No puedo acceder a las variables dentro del programa. También intenté separar las dos partes con ; y && .

Después de pensar en lo que está sucediendo allí, tuve las siguientes ideas:

cat program_variables.config | xargs run_program
cat program_variables.config | tr -d '\n' run_program

y algunos más.

Yo no escribí el programa llamado por lo que no puedo cambiar el comportamiento de la lectura de las variables.

¿Alguna idea de cómo imprimo el archivo como si yo mismo hubiera escrito su contenido en el shell?

    
pregunta Julian F. Weinert 03.04.2015 - 01:16

1 respuesta

0

Las variables se configuran solo en el ámbito actual, para hacerlas visibles en un programa al que se llama o después de una fuente (por ejemplo, . file ) que necesita para exportarlas.

Por lo tanto, program_variables.config debería ser

export VARIABLE="value" 
export VARIABLE2="value2"

Luego simplemente ejecuta el ejecutable,

Todo esto puede estar en un script para ejecutar el ejecutable

#!/bin/sh
export VARIABLE="value" 
export VARIABLE2="value2"
run_program

Guarda este archivo y hazlo ejecutable.
Luego simplemente use el nombre de este archivo como programa

    
respondido por el Mark 03.04.2015 - 01:25

Lea otras preguntas en las etiquetas