Fundamentos de BASH - Entrecomillado

6 - Entrecomillado

[editar]
Monografía creado por David F. Madrid. Extraido de: http://www.nautopia.net/archives/es/linux_administracion/fundamentos_de_bash/introduccion.php
11 de Octubre de 2005
Una característica de la shell BASH que nos puede ayudar a construir comandos y scripts más potentes es el entrecomillado. Debido a que la BASH puede usar nombres simbólicos(variables) que representan valores como el path del usuario, el path del directorio personal,etc el entrecomillado se hace necesario. En BASH o shells parecidas hay tres tipos de entrecomillado, simple, doble e invertido que se pueden combinar. Vamos a verlo con ejemplos:

Entrecomillado simple

Se llama globalización de nombres de archivo a una característica del intérprete de comandos que permite referirse a todos los archivos contenidos por ejemplo en un directorio usando un comodín como el carácter *.

Ej:

# ls $HOME/*


Aquí vemos dos cosas comentadas, la utilización de nombres simbólicos($HOME) y la de comodines(*). Ese ejemplo lista todos los archivos del directorio personal del usuario que ejecute el comando. ¿ Pero que ocurre si tenemos un archivo de nombre * y sólo queremos listar ese archivo y no todo el contenido del directorio que lo contiene ? En ese caso, lo solucionamos incluyendo el carácter comodín entre comillas simples para que el intérprete de comandos tome ese carácter como un literal y no como un comodín.

Ej:

# ls $HOME/'*'


El entrecomillado simple nos sirve para hacer que el intérprete de comandos tome lo encerrado entre él como una expresión literal, ya sean variables, comodines u otras expresiones entrecomilladas.

Entrecomillado doble

El entrecomillado doble nos permite evitar la globalización de archivos(los comodines), pero no afecta a variables u otras expresiones entrecomilladas que se encuentren dentro.

Ej:

# ls "$PATH"
ls: /usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin: No such file or directory


Ej:

# touch *
# ls "*"
*


Como vemos la variable $PATH se sutituye por su valor real, mientras que el comodín es tomado como un literal.

Entrecomillado inverso

Sin duda es el más interesante ya que es el que permite construir comandos tomando como argumentos la salida de otro comando entrecomillado entre comillas inversas`

Ej:

# ls `perl -e 'print "A"x1000'`


Lo cual como veis viene genial para buscar desbordamientos de buffer aunque sin duda se le pueden dar más utilidades menos destructivas. Como podeis observar dentro del entrecomillado invertido hay otras comillas pertenecientes a la sintaxis del comando perl, estas son tratadas como literales.

Sencuencias de escape

Las secuencias de escape es otra forma de hacer que el intérprete considere UN carácter como literal. Para utilizarlas utlizamos \ delante del carácter que queramos escapar.Nótese la diferencia entre:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin


y

# echo \$PATH
$PATH


Los entrecomillados y sencuencias de escape pueden anidarse teniendo en cuenta que algunos "anulan" los efectos de otros entrecomillado que se encuentren dentro.
[editar]

9 opiniones

Abastos.

Genial.
Una otra opción.

Excusame por mi terrible español…

pero hay otra opción para aprender bash. En www.julioneves.com a eleja los links “conversa de bar”. Allí encontrarás un libro entero de shell scripting (254 páginas en el formato a4) traducido por la comunity.
Linux.

Mas comandos o todos de linux en donde la puedo encontrar

este recurso es muy vacamo y educatvo.
Muy buenos.

Es muy bueno para nosotros los que buscamoenla red informacion.
Variables entorno linux.

Por fis haber si aguen me pasa un resume de variables de entoernoa a linux.
1 2 | siguiente >

Monografías relacionados con 'Fundamentos de BASH'

No conocerás lo que es Linux hasta que no conozcas la consola. La consola es... Más »
La cocina española es rica en salsas sobre la base de cebollas, tomates ajíes; cazuelas... Más »
Una shell es un programa encargado de hacer de interfaz entre el usuario y el... Más »

Autor y licencia de 'Fundamentos de BASH'

This article is licensed under a Creative Commons License
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.