*Comillas*
El uso de las comillas en la programación en shell es un tema bastante
importante. En los lenguajes de alto nivel normalmente las comillas sólo se
utilizan para las ristras, y no necesitan un aprendizaje especial para
usarlas: simplemente saber (en el lenguaje C, por ejemplo) que las comillas
simples son caracteres y que las comillas dobles requieren reservar memoria,
porque son ristras, o sea, punteros a caracteres.
*Tres tipos de comillas*
En la programación en shell en UNIX hay tres tipos de comillas útiles: La
comilla simple ('), la comilla doble (") y la comilla invertida (`). Cada
una tiene un propósito diferente, y se deben saber usar todas bien.
La comilla simple (') sirve para coger literales. Es importante darse cuenta
de que algo encerrado entre comillas simples siempre es un solo parámetro,
aunque sea una ristra vacía ('').
La comilla doble sirve para sustituir lo que hay dentro (valores de
variables, caracteres especiales), pero después de sustituir queremos
tratarlo como si estuviera encerrado entre comillas simples. Esto es útil
cuando, por ejemplo, tenemos que dar un parámetro a un programa, pero ese
parámetro es leído del teclado y no sabemos si la ristra es vacía. Si nos
tenemos que asegurar de que se trata como un parámetro, tendríamos que
encerrarlo entre comillas simples (recordemos que '' sigue siendo un
parámetro, aunque vacío), pero si lo encerramos entre comillas simples no se
sustituirá la variable. La forma de hacerlo es encerrando la variable entre
comillas dobles.
Veamos esto en el siguiente ejemplo:
x=100
y='500$x'
echo $y # Esto enseñará `500$x' en pantalla
y="500$x"
echo $y # Esto enseñará `500100' en pantalla
Las que quedan son las comillas invertidas (`). Estas se utilizan con
órdenes, y se sustituyen por la salida del programa que está entre las
comillas invertidas. Por ejemplo, si queremos almacenar en una variable el
número de usuarios que hay actualmente en el sistema, podemos hacer
usuarios=`who | wc -l`
Por si queda alguna duda, who dice los usuario que hay en el sistema,
poniendo uno en cada línea, y wc -l cuenta las líneas que tiene el texto que
le entre por la entrada estándar, sacando el número resultante a la salida.
hth
E Garrido
2006/4/25, miguel gmail
Buenas,
estoy harto de pegármela siempre en le mismo sitio a la hora de scriptear. Cómo demonios se usan las comillas en unix?
´´ ` ` ' ' ""
Conocéis alguna página que lo explique bien bien bien? Y con ejemplos.
Muchas gracias.
-- Saludos, miguel
-- Para dar de baja la suscripción, mande un mensaje a: suse-linux-s-unsubscribe@suse.com Para obtener el resto de direcciones-comando, mande un mensaje a: suse-linux-s-help@suse.com