Saltar la navegación

Variables del shell

En el shell bash pueden utilizarse variables. Las hay de dos tipos:

  • Variables creadas por el sistema: Son variables que el shell crea y las necesita para su funcionamiento. Algunas pueden ser modificadas por el usuario para cambiar el comportamiento del shell, pero otras deben dejarse con el valor asignado desde el inicio. Por convenio, estas variables tienen sus nombre en mayúsculas.
  • Variables creadas por el usuario: Para diferenciarlas de las anteriores, se les suele poner el nombre en minúsculas.

La forma de asignar un valor a una variable es la siguiente:

VARIABLE=valor

si la variable no existe, se crea y se guarda el valor, pero si la variable existe, el valor que ya tuviera se pierde y se guarda el nuevo valor que se le esté dando.

Para eliminar el valor de una variable se pueden utilizar uno de los dos métodos siguientes:

VARIABLE=

unset VARIABLE

Algunas de las variables más destacadas que crea el sistema son:

  • CDPATH: Una lista de directorios separados por dos puntos utilizada como ruta de búsqueda para el comando interno cd.
  • HOME: El directorio casa del usuario. El valor que utiliza el comando cd cuando se ejecuta sin argumentos. El valor de esta variable también se utiliza en la expansión de tildes.
  • IFS: Una lista de caracteres empleados para separar campos en múltiples situaciones.
  • PATH: Una lista de directorios separados por el carácter dos puntos, en los cuales el shell busca los comandos para ejecutarlos. Un nombre de directorio de longitud cero (nulo) en el valor de PATH indica el directorio actual. Un nombre de directorio nulo puede aparecer como dos caracteres dos puntos seguidos, o como un signo dos puntos al inicio o al final.
  • PS1: La cadena de prompt primaria. El valor por defecto es '\s-\v\$ '.
  • PS2: La cadena de prompt secundaria. El valor por defecto es '>'.
  • BASH: La ruta completa usada para ejecutar la instancia actual de bash.
  • BASHOPTS: La lista de opciones del shell que están activas. Cada palabra en la lista es un argumento válido para la opción '-s' del comando interno shopt.
  • BASHPID: Contiene el identificador del proceso del shell bash actual.
  • BASH_ALIASES: Una variable de tipo array asociativo cuyos miembros se corresponden con la lista interna de alias tal como es mantenida por el comando interno alias.
  • BASH_SUBSHELL: Un valor numérico que indica cuantos subshell se están ejecutando. El valor inicial es 0.
  • BASH_VERSION: El número de versión de la instancia actual de bash.
  • EUID: El UID efectivo del usuario actual. Esta variable es de solo lectura.
  • GLOBIGNORE: Una lista de patrones separados por dos puntos que definen el juego de nombres de fichero que deben ser ignorados por la expansión de fichero. Si un nombre de fichero concuerda con un patrón de expansión de fichero y también con uno de los patrones en GLOBIGNORE, entonces el fichero es eliminado de la lista de concordancias.
  • GROUPS: Una variable de tipo array que contiene la lista de grupos de los que forma parte el usuario actual.
  • HISTFILE: El nombre del archivo en el que se guarda el historial de comandos. El valor por defecto es ~ /.bash_history.
  • HISTFILESIZE: El número máximo de órdenes que podrán guardarse en el archivo del historial de comandos. Cuando se asigna un valor a esta variable se recorta dicho archivo, si es necesario, eliminando las entradas más antiguas, para que no contenga más que el número de líneas dado. El valor por defecto es 500.
  • HISTSIZE: El número máximo de comandos que pueden ser recuperados. El valor por defecto es 500.
  • HOSTNAME: El nombre del ordenador.
  • HOSTTYPE: Una cadena que describe la máquina en la que se está ejecutando el bash.
  • OLDPWD: Es el directorio de trabajo previo al actual.
  • OSTYPE: Una cadena que describe el sistema operativo que está instalado.
  • PPID: El PID del proceso padre del shell. Esta variable es de solo lectura.
  • PS3: El valor de esta variable se utiliza como el prompt para el comando select. Si no tiene valor, el prompt será #?.
  • PWD: El directorio de trabajo actual.
  • RANDOM: Cada vez que se expanda esta variable se mostrará un entero aleatorio entre 0 y 32767.
  • SECONDS: Esta variable se expande al número de segundos transcurridos desde que se inició el shell. El usuario puede cambiar su valor, y se irá incrementando en una unidad cada segundo.
  • SHELL: La ruta completa al shell. 
  • SHELLOPTS: Es igual que la variable BASHOPTS, pero con opciones del comando interno set.
  • UID: El UID real del usuario actual. Esta variable es de solo lectura.

 

Licencia: licencia de software libre GPL