El script BASH para configurar las variables de entorno no funciona

Pregunta:

Escribí el siguiente script para configurar algunas variables de entorno cuando sea necesario.

#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH

Debajo del comando y los resultados que puedo ver en mi terminal: el script se ejecuta, pero las variables no se establecen al final.

~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE

~$: 

¿Qué ocurre? Gracias por adelantado. Mirko

Respuesta:

export exporta la asignación de variable a procesos secundarios del shell en el que se ejecutó el comando de export . Su entorno de línea de comandos es el padre del shell del script, por lo que no ve la asignación de variable.

Puede utilizar el . (o source ) comando bash para ejecutar los comandos de script en el entorno de shell actual y lograr lo que desea, por ejemplo

source ./script.sh
echo "$BASE"

Producirá

/home/develop/trees

El comando de source , que se ve a menudo en los scripts, es un sinónimo de bash . , Que es parte de la norma POSIX (de modo . Está disponible en el tablero, por ejemplo, pero source no lo es).

. ./script.sh     # identical to "source ./script.sh"

( . script.sh y source script.sh primero buscarán script.sh en PATH , por lo que es más seguro especificar la ruta a script.sh ).

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım