Este comando:
echo '18' | source meta-cmf-raspberrypi/setup-environment
No configurar las variables de entorno como sucedió con simplemente:
source meta-cmf-raspberrypi/setup-environment
Con "18" en la entrada.
La pregunta en el enlace:Las variables de entorno no se configuran cuando se llama a mi función en una tubería
No resuelvo mi problema porque lo intenté:
echo '18' > >(source meta-cmf-raspberrypi/setup-environment)
Sin éxito. ¿Cómo soluciono el problema?
Respuesta1
En proceso, el script se obtiene en un entorno separado. Lo mismo ocurre en el ejemplo de sustitución de procesos. Esto significa que las variables configuradas en el script se configuran en un entorno secundario del shell que llama. Los cambios en un entorno secundario nunca pueden propagarse al entorno principal.
Podrías resolver esto de dos maneras, evitando obtener el script en un entorno separado.
La primera forma funcionaría en un shell que entienda "cadenas aquí":
source meta-cmf-raspberrypi/setup-environment <<<18
La segunda forma es utilizar un documento aquí estándar:
source meta-cmf-raspberrypi/setup-environment <<END_INPUT
18
END_INPUT
En ambas variaciones, el script se origina en el entorno actual, con su entrada redirigida desde here-string/here-document.