Soy bastante nuevo en la ejecución de scripts en UNIX/Linux. Tengo un archivo .env que contiene información del entorno y un script .sh que contiene creaciones de carpetas, etc. para ese entorno.
¿Cómo ejecutaría el script en el entorno contenido en el archivo .env o cómo podría apuntar el script al entorno de destino?
¿Sería tan fácil como:
bash 'scriptname.sh' 'filename.env'Debe obtener el entorno en el shell de llamada antes de iniciar el script:
source 'filename.env' && bash 'scriptname.sh'Para evitar la contaminación del entorno del shell que llama, puede ejecutarlo en un subshell:
(source 'filename.env' && bash 'scriptname.sh'). ./filename.env sh scriptname.shEl primer comando establece el env. variables en el shell, el segundo lo usará para ejecutarse.
Cree un archivo con el nombre tal vez run_with_env.sh con el contenido a continuación
ENV_FILE="$1" CMD=${@:2} set -o allexport source $ENV_FILE set +o allexport $CMD Cambia el permiso a 755
chmod 755 run_with_env.shAhora ejecute el archivo bash con el siguiente comando
./run_with_env.sh filename.env sh scriptname.sh