Comando.- Contrabarra, barra invertida, barra inversa, diagonal invertida, anti slash o back slash (\)

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/

About these ads

9 thoughts on “Comando.- Contrabarra, barra invertida, barra inversa, diagonal invertida, anti slash o back slash (\)

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s