Creación de variables personalizadas

ShellBeginner
Practicar Ahora

Introducción

En laboratorios anteriores, vimos variables existentes como User. Ahora creará sus propias «notas adhesivas».

Una variable es simplemente un nombre que contiene texto.

Sin embargo, cuando crea una variable, esta es privada del intérprete de comandos actual. Para compartirla con otros programas, debe «exportarla».

La diferencia entre una variable del shell y una variable de entorno es una de las ideas centrales de este módulo. No todas las variables pasan automáticamente a formar parte del entorno que ven los procesos secundarios.

En este laboratorio, usted:

  • Creará la variable MYCAFE.
  • Leerá su contenido.
  • La «exportará».
  • Comprobará que funciona en un segundo shell.

Crear una variable

Cree una variable llamada MYCAFE y asígnele el valor "espresso".

Crear una variable es como escribir en una nota adhesiva.

Ejecute lo siguiente:

MYCAFE="espresso"

Importante: no use espacios alrededor del signo =.

  • Correcto: MYCAFE="espresso"
  • Incorrecto: MYCAFE = "espresso"

Si usa espacios, el shell interpreta que MYCAFE es un comando.

Este es un buen ejemplo de cómo la sintaxis del shell depende de los espacios en blanco. En el shell, los espacios no son solo un recurso visual de formato; a menudo separan palabras y argumentos con un significado real.

Mostrar una variable

Ahora, compruebe que el valor se ha almacenado.

Para acceder al valor, use el signo de dólar $.

Ejecute lo siguiente:

echo $MYCAFE

Salida:

espresso

Si omite $, echo simplemente muestra la palabra «MYCAFE».

Exportar una variable

En este momento, MYCAFE es una variable local. Es como una nota en su cuaderno privado.

Para compartirla con otros programas, debe exportarla. Esto la convierte en una variable de entorno (como colocarla en un tablón de anuncios).

Puede entender export como una instrucción al shell: «Incluya esta variable cuando inicie programas secundarios». Sin export, el valor permanece únicamente en el shell actual.

Ejecute lo siguiente:

export MYCAFE

A partir de ahora, MYCAFE se pasará a cualquier programa que inicie desde este shell.

Probar en un shell secundario

Compruebe que funciona iniciando un shell «secundario».

  1. Inicie una sesión nueva de bash:
bash

Ahora se encuentra dentro de un proceso de shell nuevo.

  1. Compruebe si reconoce MYCAFE:
echo $MYCAFE

Salida:

espresso

¡Funciona! El shell secundario heredó el valor.

La herencia es la palabra clave en este caso. Los procesos secundarios suelen comenzar con una copia del entorno del proceso principal. Por eso las variables exportadas son una forma tan habitual de pasar contexto a scripts y comandos.

  1. Salga del shell secundario y vuelva al proceso principal:
exit

Resumen

En este laboratorio, practicó el ciclo de vida de una variable:

  • Creación: MYCAFE="espresso" (¡sin espacios!)
  • Lectura: echo $MYCAFE (no olvide $)
  • Compartición: export MYCAFE (para hacerla pública para los procesos secundarios)

Este mecanismo es exactamente el que utiliza el sistema para configurar su entorno (PATH, USER, etc.) incluso antes de que inicie sesión.