|
REFERENCIANDO VARIABLES
Las variables de los scripts no se declaran, y siempre están
inicializadas con una ristra vacía o nula. Nótese que esto no es lo mismo que contener
un espacio. Una ristra vacía o nula es una ristra que no contiene ningún caracter.
Hay que tener cuidado al asignar valores a las variables, ya que no se
debe dejar ningún espacio entre el signo de asignación (el `=') y la variable o el valor
asignado (algo que, por otra parte, es una muy buena costumbre cuando da igual).
Para referirse a las variables, hay que utilizar el signo dólar ($)
antes del nombre de ésta, siempre que nos refiramos a ellas para consultar su valor (si
asignamos un valor a la variable, o utilizamos la orden read, que escribe en ella, NO hay
que poner el signo de dólar). Si nos olvidamos del signo dólar, y hacemos algo parecido
a:
y=hola
x=y
Nos encontraremos con la desagradable sorpresa de que el valor de x es
el carácter y, y no los caracteres hola, como quizás pretendiéramos. Para hacer la
asignación correctamente, tendríamos que haber escrito:
y=hola
x=$y
Como en todas o al menos la mayoría de las cosas en UNIX, los nombres
son case sensitive, es decir, que no es lo mismo y que Y (aviso para los programadores
acostumbrados al MS-DOS!).
Dos órdenes útiles: echo y read
Dos órdenes bastante útiles para probar algunas estupideces con
variables son echo y read. La primera es como su homónimo de MS-DOS (o mejor dicho: el de
MS-DOS es una copia, probablemente peor, de su homónimo UNIX), para mostrar texto por
pantalla, y la segunda, como su nombre indica, es para leer del teclado y poner el
resultado en una o varias variables. El funcionamiento de read es el siguiente: lee del
teclado una ristra, y va asignando las palabras en orden a cada una de las variables que
se le pasen como parámetros, asignando el resto de la ristra a la última variable. Es
decir, que si se le pasan tres variables como parámetro, se asigna la primera palabra a
la primera variable, la segunda a la segunda variable, y el resto de la ristra leída a la
tercera variable.
|