Pregunta Conservar entornos vars después de los finales del script de shell


¿Cómo puedo mantener las variables de entorno, configuradas desde un script de shell, una vez que el script termina de ejecutarse?


6
2018-02-07 02:05


origen


Respuestas:


Esto no es posible por corriendo la secuencia de comandos. La secuencia de comandos genera su propio subconjunto que se pierde cuando se completa la secuencia de comandos.

Para preservar exports que puede tener en su script, puede llamarlos así, lo que los agregará al entorno actual:

. myScript.sh 

Observe el espacio entre . y el myScript.sh sección.


9
2018-02-07 02:32



ejecuta el script de la siguiente manera:

source <script>

-OR-

. <script>

Esto ejecutará el script en el shell actual y definirá las variables en el shell actual. Las variables se conservarán en el shell actual una vez que se haya completado el script.


1
2018-02-07 03:30



Las variables de entorno existen el entorno que es privado para cada proceso. El intérprete de comandos transfiere una COPIA de las variables exportadas a sus elementos secundarios como su entorno, pero no hay forma de que pasen su entorno al elemento principal o a un proceso que no sea el de sus elementos secundarios. Puede imprimir esas variables y cargarlas en el padre. O como ya se ha mencionado, puede ejecutar su secuencia de comandos en el shell actual con "script de origen" o ". Script" (y es posible que necesite ./script if. No está en su RUTA). Algunas herramientas imprimen sus vars y la cáscara puede cargarlos usando backticks como ssh-agent. De esa forma, cualquier impresión de ssh-agent se ejecutará como un comando. Si imprime algo así como "VAR1 = VAL; VAR2 = VAL2", puede hacer lo que quiera.


1
2018-02-07 05:12