2010-04-15 11 views

Respuesta

8

Porque las comillas son procesadas por el shell y el comando echo recibe -n llano. Si desea hacer eco de -n, puede p. Ej. printf '%s\n' -n

+2

es una pena '-' (fin de las opciones) no es compatible :( – extraneon

+0

Los siguientes trabajos con bash: echo -e -n \\ c – Tino

0

Las citas no ayudan porque ... ugh, es difícil de explicar. El caparazón quita las comillas antes de que se evalúe el comando "echo", por lo que en ese momento ya no importan.

Prueba esto:

echo - -n 

eso no es documentado como de trabajo (Estoy corriendo Ubuntu Linux), pero es casi seguro que echo un built-in a cualquier shell que estés utilizando, por lo que el hombre es la página cuestionable de todos modos. Funciona para mi (Estoy ejecutando zsh porque soy muy suave y sofisticado).

edición: así parece que la orden interna bashedit no se comporta de esa manera. No sé qué sugerir; esto:

echo '' -n 

le dará "-n" precedido por un espacio, que (dependiendo de lo que está haciendo) podría estar bien.

+0

No funciona para mí. Salida '- -n' – extraneon

+0

Para mí que hace esto > echo - -n - -n –

+0

Hmm, como acabo de notar en una edición, probablemente varía de shell a shell. – Pointy

2

debe intentar usar el más portátil printf en la medida de lo posible.

2

Usted podría intentar

echo -e '\055n' 
0

No hay quiete:

echo -e 'a-n\b\b\b ' 
-n 

sorprendentemente esto funciona:

echo -e '-n\b' 
-n 

y aquí una solución que puede explicar:

echo "foobar" | sed 's/.*/-n/' 
-n 
2

He encontrado que la siguiente simplemente funciona en bash:

echo -n PRINT_THIS 

Por lo tanto, se debería poner -n el primer lugar.