Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j
Zapatos Transparentes Verano Cristal Mujeres De Playa Mujer Cuñas Zapatillas Chanclas Sandalias Yma176 8PnOw0k

Zsh parece hacer un poco de backslashing raro cuando intentas echo un montón de barras invertidas. Parece que no puedo encontrar un patrón muy claro para esto. ¿Alguna razón para esta locura? Por supuesto, si realmente quisiera usar barras diagonales inversas correctamente, entonces usaría las citas adecuadas, etc., pero ¿por qué sucede esto en primer lugar?

Aquí hay un pequeño ejemplo para mostrar lo mismo:

$ echo \

$ echo \ \
 
$ echo \ \ \
  
$ echo \ \ \ \
   
$ echo \\ \ \
  
$ echo \\\ \
\ 
$ echo \\\\
\

Inicialmente descubrí esto de forma independiente hace un tiempo, pero me lo recordó este tweet por Zach Riggle.

2013 OfimaticasOctubre Herramientas Herramientas Herramientas OfimaticasOctubre OfimaticasOctubre 2013 2013 OfimaticasOctubre 2013 Herramientas QrxdhtsC

Respuestas

5 para la respuesta № 1

En el primer paso, el comando echo no esespecial. La línea de comando es analizada por reglas que son independientes de qué comando se está ejecutando. El efecto general de este paso es convertir su comando de una serie de caracteres a una serie de palabras.

Las dos reglas de análisis generales que necesita saber para comprender este ejemplo son: el carácter de espacio separa las palabras, y el carácter de barra invertida escapa de los caracteres especiales, incluido él mismo.Vestido Vestidos Naif Mujer Jlbnjcu Blanco 8XwOkn0P

Entonces el comando echo \ se convierte en una lista de 2 palabras:

echo

La primera barra invertida escapa a la segunda, lo que resulta en una barra invertida en la segunda palabra.

echo \ \ \ \

se convierte en esta lista de palabras:

echo




De Vestido Comunión Suizo Beige Con Organdí Valencié m0OyvN8wPn

Ahora el análisis de línea de comandos está hecho. Solo ahora el shell busca un comando nombrado por la primera palabra. Hasta ahora, el hecho de que el comando es echo ha sido irrelevante Si hubieras dicho cat \ \ \ \, cat se invocaría con 4 palabras de argumento, cada una con una sola barra invertida.

Normalmente cuando corres echo obtendrá el comando de shell incorporado. El eco incorporado de zsh tiene un comportamiento configurable. Me gusta usar setopt BSD_ECHO para seleccionar el comportamiento de eco de estilo BSD, pero a partir de su salida de muestra, parece que se encuentra en el modo predeterminado, estilo SysV.

El eco de estilo BSD no hace ningún procesamiento de barra invertida, simplemente los imprimirá a medida que los reciba.

SysV echo procesa escapes de barra invertida como en C strings - t se convierte en un personaje tab, r se convierte en un retorno de carro, etc. También Adidas In TumblrFotos Tumblr Fotografía Superstars WhiteShoes 3qAc5RjS4Lc se interpreta como "finalizar la salida sin una nueva línea".

Entonces si dijiste echo a\tb entonces el análisis de shell daría como resultado una sola barra diagonal inversa en la palabra de argumento dada a eco, y el eco interpretaría atb e imprimir a y b separados por una pestaña. Sería más legible si se escribe como echo "atb", utilizando apóstrofes para proporcionar cotizaciones en el nivel de análisis del comando shell. Igualmente echo \\ dos barras diagonales inversas después del análisis de línea de comandos, por lo que echo ve \ y genera una barra invertida. Si quisiera imprimir literalmente atb sin usar otra forma de cotización, tendrías que decir Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4jecho a\\tb.

Entonces el caparazón tiene una regla simple: dos barras diagonales inversasen la línea de comando para hacer una barra invertida en la palabra argumento. Y echo tiene una regla simple: dos barras diagonales inversas en la palabra argumento para hacer una barra invertida en la salida.

Pero hay un problema ... cuando echo hace lo suyo, una barra invertida seguida de t significa dar salida a una pestaña, una barra invertida seguida de una barra invertida significa una barra invertida ... pero hay muchas combinaciones que no significan cualquier cosa. Una barra invertida seguida de T por ejemplo, no es una secuencia de escape válida. En C sería una advertencia o un error. Pero el comando echo intenta ser más tolerante.

Tratar echo \T o echo "T" y descubrirá que una barra invertida seguida de cualquier elemento que no tenga un significado definido como escape de barra invertida hará que echo emita ambos caracteres tal como están.

Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j

Lo que nos lleva al último caso: ¿y si la barra invertida no es seguida de nada? ¿Qué pasa si es el último carácter en la palabra argumento? En ese caso, echo simplemente genera la barra invertida.

Entonces, en resumen, dos barras diagonales inversas en la palabra argumento dan como resultado una barra invertida en la salida. Pero una barra invertida en la palabra argumento también da como resultado una barra invertida en la salida, si es el último carácter de la palabra o si la barra invertida junto con el siguiente carácter no forma una secuencia de escape válida.

La línea de comando echo \\ así se convierte en la lista de palabras

echo
\

que genera una sola barra invertida "correctamente", con comillas aplicadas en todos los niveles.

MuñecaarchivoPágina Llevas La Puesto Que 6 Reloj Hoy En 6Yfvb7gy

La línea de comando echo \ se convierte en la lista de palabras

echo

que produjo una sola barra invertida "desordenada", porque echo encontró una barra invertida al final del argumento y fue lo suficientemente generosa como para mostrarlo aunque no se haya escapado.

El resto de los ejemplos deben ser claros a partir de estos principios.Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j


Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j
Más popular
Coleccionista Puissance Galeria Del Ochiomadrid Gómez Reloj Fran 8madrid 35ARjcSq4L
Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4jLibGdx - Haz que sprite siga un camino de línea - java, gráficos, libgdx
Java
Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j
Y Compra Tm340 Disfruta Envío Gratuito En Automatic Del 5L3AqR4j