|
Variables útiles de entorno
En los programas muchas veces es útil consultar las variables de
entorno. Por ejemplo, el usuario puede tener definido su editor preferido enla variable
$EDITOR. Así, si necesitamos editar un texto, podemos llamar al editor que ponga la
variable $EDITOR, en vez de coger el que a nosotros nos de la gana (ya se sabe, la guerra
santa vi-emacs, en la que por cierto soy defensor del vi, hace estragos). Algunas
variables útiles de entorno son:
Variable Significado
$PS1 Aspecto del prompt principal
$PS2 Aspecto del prompt secundario
$PWD Directorio actual
$HOME Directorio home del usuario que ejecuta el proceso
$USER Nombre de login del usuario que ejecuta el proceso
$$ PID del proceso
$PATH Ruta de búsqueda del usuario actual
El prompt, como probablemente sabes, es lo que sale a la izquierda de
la pantalla cuando escribes cosas. En una terminal UNIX, probablemente sea `$' en Linux
seguramente es algo más complicado, y si la distribución es Red Hat probablemente es un
prompt bastante feo (es la que tengo actualmente, y me encantó cuando pude cambiarlo,
gracias al libro de programación en shell).
A lo mejor lo que no sabes es qué diablos es el prompt secundario.
Cuando escribes comillas (de cualquier tipo) en la línea de comandos, pero pulsas Enter
antes de terminar de escribir lo que tenías entre comillas (es decir, si abres comillas
pero no las cierras), el shell te pondrá el prompt secundario en la siguiente línea, y
seguirá poniendo prompts secundarios en las líneas
subsiguientes hasta que cierres las comillas.
El PID de un proceso es su process id. Es un número que sirve para
identificar al proceso (cuando haces un kill y similares). Este número es evidentemente
único para cada proceso, y lo podemos utilizar para crear ficheros en el directorio /tmp
únicos para esa ejecución del script. Piensa que si tuviéramos a dos usuarios
diferentes ejecutando el mismo script a la vez, uno de ellos machacaría algún
hipotético fichero temporal que pudiera tener el primero, y se formaría un pollo que no
veas.
Algo a tener en cuenta cuando estemos programando apoyándonos en
variables de entorno, es que estas variables no se pueden modificar. Podemos asignarles
valores y cambiarán, pero sólo en nuestro programa. Hay que tener en cuenta que $PWD,
que es la variable que controla el directorio actual, no tiene nada que ver con el núcleo
del sistema operativo, es un problema exclusivo del shell, que es al fin y al cabo la
interfaz para que el usuario se comunique con el sistema operativo. Así, si escribimos un
script que cambie el directorio actual, aunque sea mediante la orden cd, al salir del
script el shell ni se habrá enterado.
|