La contrabarra, barra invertida, barra inversa, diagonal invertida, anti slash o back slash (\) escapa cualquier carácter que le siga, haciendo que sea interpretado literalmente. Hace que los caracteres especiales dejen de serlo cuando tienen antes de él una anti slash (\). Funciona igual que los apostrofes simples, pero de a un solo carácter a la vez y se puede emplear cuantas veces se necesite.
Ejemplos:
a) Cuando el nombre de una carpeta tiene en su nombre uno más espacios en blanco. Ejemplo.- una carpeta que se llame son travesuras mias y este en el escritorio.
Crear la carpeta:
mkdir Desktop/son\ travesuras\ mias
Entrar en ella:
cd Desktop/son\ travesuras\ mias
Ver que hay dentro:
ls -la Desktop/son\ travesuras\ mias
Borrar la carpeta:
rm -rf Desktop/son\ travesuras\ mias
b) Ejecutar un echo dejando la variable viva, luego escapar un signo de dolar ($) para ver como interpreta la variable a la que pertenece.
FLOR=rosa; COLOR=roja; echo "La $FLOR $COLOR es una \$FLOR"
Nos devuelve:
La rosa roja es una $FLOR
Como se uso el entrecomillado débil ("), interpreta todo el contenido que hay dentro de ellos y respeto la función de la contrabarra (\). El signo dolar ($) y el nombre de la variable aparece tal cual porque fue escapada la $ por por el anti slash (\).
c) Hacer que la contrabarra (\) no sea interpretada; esto se consigue poniendo otra barra invertida (\) antes de ella. Un caso sería hacer una carpeta que su nombre contenga una back slash (\). Ejemplo.- Digamos que la carpeta se llama rosa\roja y esta en el escritorio.
Crear la carpeta:
mkdir Desktop/rosa\\roja
Entrar en ella:
cd Desktop/rosa\\roja
Listar su contenido.
ls -la Desktop/rosa\\roja
Borrar la carpeta
rm -rf Desktop/rosa\\roja
d) En el promt se puede usar para dar enter sin que eso signifique que se termino de escribir la orden. Solo se escribe al final de cada línea una contrabarra (\) y se da enter para pasar a la siguiente. Para dar por aceptado el script basta omitir la back slash (\) y dar enter.
Escribir en la shell:
FLOR=rosa; COLOR=roja; echo Esta \ $FLOR \ es \ $COLOR
Nos devuelve:
Esta rosa es roja
Después de cada retorno de carro aparece automáticamente un signo > en la terminal para indicarnos que todavía no terminamos con esa orden y podemos continuar. Muestra:
FLOR=rosa; COLOR=roja; echo Esta \ > $FLOR \ > es \ > $COLOR Esta rosa es roja
e) Uso complejo de la anti-slash (\) junto con las comillas dobles (") para escapar caracteres distintos.
En la shell:
FLOR="rosa roja"; flor=rosa; blanca=rosa\ blanca; \ COLOR=roja; echo "El precio en \$ de la $FLOR \ es elevado; todo porque simboliza el \"amor apasionado\". \ La $blanca es bella, pero no se usa tanto. Me gusta más \ la $flor blanca que la $COLOR."
Nos devuelve:
El precio en $ de la rosa roja es elevado; todo porque simboliza el "amor apasionado". La rosa blanca es bella, pero no se usa tanto. Me gusta más la rosa blanca que la roja.
Explicación: En Linux se hace diferencia de letras mayúsculas de las minúsculas, por eso $FLOR y $flor son interpretadas como variables distintas. Cuando se definió la variable $blanca se uso una contrabarra (\) para escapar el espacio en blanco, en cambio en $FLOR fue con las comillas dobles ("). Los otros símbolos especiales usados en el ejemplo, como el de signo pesos ($) se escapan poniendo una la anti slash (\) antes de ellos. Cuando a la cadena de echo pongo una contrabarra (\) y doy enter, la shell lo interpreta como retorno de carro en el promt y en el resultado como un solo párrafo o línea; esta característica de la barra invertida (\) funciona por igual con o sin entrecomillado. En cambio cuando encierro la cadena de echo con las aspas (") y doy retorno de carro sin la anti slash (\), hay cambio de línea en la shell y en el resultado que arroja; en estos casos para poder dar el enter que ejecuta el comando(s) hay que cerrar las comillas. Por eso "El precio en $ de la rosa roja…", "…"amor apasionado"…." y "… Me gusta más…" esta en la misma línea, en tanto al final de "…es elevado; todo…" y "…La rosa blanca es bella,…" hay un retorno de carro en el resultado. El punto y coma (;) dentro de la cadena de echo no es interpretado porque se encuentra englobado por las comillas dobles (").
Nota.- La contrabarra (\) en ciertos comandos como printf tiene más funciones.
http://www.gnu.org/software/bash/manual/
http://es.wikipedia.org/wiki/Bash
http://es.wikipedia.org/wiki/Bourne-Again_shell>
http://wiki.softwarelivre.org/TWikiBar/TWikiBarConversa001
http://rm-rf.es/unix-expresiones-regulares/
no me sirvio paar nada
NO SIRVES PARA NADA
Mis primeros troll’s. ¡Que emoción! Me hace tanta ilusión.
Gracias, me ha sido útil.
De nada
Es un pedaso de mierda que no se porque te tomaste el tiempo de escribirlo
¿que te crees?
tu describes la cara de Michael Jacson pero no explicas porque se convirtio de negro a blanco, ¡fuera de aca sonso!
No se a k vienen estas malas puntuaciones hay gente que empieza a usar Ubuntu i requiere de informacion basica como esta para empezar
Haz el mismo caso que yo, ninguno.
Saludos