estebanrfpexport-environment-variables-from-a-bash-script

Exportar variables de entorno desde un script bash

Puede utilizar el comando source para exportar variables de entorno desde un script bash

#linux#novedades

Podemos crear un script bash que exporte variables de entorno.

Por ejemplo, creando un archivo env.sh que contenga las variables de entorno:

export TEST1=hello

export TEST2=world

La forma correcta de exportar la variable de entorno desde su script a su shell es usar el comando source.

source env.sh

echo $TEST1 $TEST2

$ hello world

Podemos colocar el archivo env.sh en /usr/bin, y ejecutar source env.sh desde cualquier sitio y funcionará. Es buena práctica acostumbrarnos a usar source en vez de ejecutar el script directamente.

Como alternativa podemos crear una nueva sesión bash desde su script bash y hacer que permanezca allí hasta que el usuario escriba 'exit'. Bash otorga una opción interactiva para esto.

bash -i

Ok, ¿cómo hacer uso de ello?

Déjeme darle un caso y explicar por qué quiero hacer uso de bash -i en lugar de fuente.

A veces necesitamos compilar algunas aplicaciones usando diferentes conjuntos de herramientas basadas en la arquitectura de procesador del dispositivo embebido.

La variable de entorno común para toolchain son ARCH y CROSS_COMPILE.

Además podríamos personalizar el shel de un usuario en particular, cambiar el color y el formato de la línea de comandos existente con bash, haciendo uso de la variable PS1.

build_arm.sh

#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-
export PS1="\e[31mBUILD_ARM \w \e[m\n\$"

bash -i

Cuando se ejecuta build_arm.sh, el indicador de bash se volverá rojo y se establecerá la variable de entorno para ARCH y CROSS_COMPILE, hasta que el usuario escriba "exit", todo volverá a la normalidad. ¿Por qué? Porque bash -i espera interactivamente las entradas del usuario.

./build_arm.sh
BUILD_ARM ~
$