Saltar la navegación

Ambientes de ejecución

Cuando en el shell ejecutamos un comando, este se ejecuta como un proceso hijo del shell bash. El bash es el padre del comando. Cada proceso, padre o hijo, tiene su propio ambiente de ejecución. Este ambiente es realmente un conjunto de variables, privilegios y recursos.

Procesos padre e hijo

Por defecto, un proceso padre pasa a su hijo sus derechos y privilegios. Por ejemplo, si el padre tiene permiso para leer un fichero particular, también lo tiene el hijo. Sin embargo, el padre no pasa al hijo variables, alias y funciones. Para que el hijo pueda ver una variable o función del padre, este deberá exportarla explícitamente al hijo; pero lo que se exporta es una copia de las variables, por lo que modificaciones sobre estas, por parte del proceso hijo, no se verán reflejadas en las variables del padre.

Un resumen de lo que el hijo hereda del padre es el siguiente:

Paso del padre al hijo

Para exportar variables y funciones usamos la orden interna export de la siguiente manera:

export varible...

Para eliminar la característica de exportable:

export -n variable...

Para ver todas las variables exportables:

export

Para exportar una función:

export -f función...

Para eliminar la característica de exportable de una función:

export -fn función...

Para ver todas la funciones exportables:

export -f

Cuando un shell se cierra, las variables y funciones que hayamos creado, con sus propiedades de exportables o no, se pierden, por lo tanto, para conservarlas entre sucesivas ejecuciones del shell, debemos utilizar los ficheros de arranque.

Licencia: licencia de software libre GPL