Pregunta Echo nueva línea en Bash imprime literal \ n


En Bash, intenté esto:

echo -e "hello\nworld"

Pero no imprime una nueva línea, solo \n. ¿Cómo puedo hacer que imprima la nueva línea?

Estoy usando Ubuntu 11.04.


1567
2017-12-11 21:01


origen


Respuestas:


Podrías usar printf en lugar:

printf "hello\nworld\n"

printf tiene un comportamiento más consistente que echo. El comportamiento de echo varía mucho entre las diferentes versiones.


1934
2017-12-11 21:04



¿Estás seguro de que estás en bash? Funciona para mí, de las tres maneras:

echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world

1296
2017-12-11 21:04



echo $'hello\nworld'

huellas dactilares

hello
world

$'' cadenas de uso Citas ANSI C:

Palabras de la forma $'cuerda' son tratados especialmente. La palabra se expande a cuerda, con los caracteres escapados de barra invertida reemplazados según lo especificado por el estándar ANSI C.


422
2017-11-02 09:39



Siempre puedes hacer echo "".

p.ej.

echo "Hello"
echo ""
echo "World"

90
2018-02-28 22:14



En caso de que alguien se golpee la cabeza contra la pared tratando de descubrir por qué el guión de un compañero de trabajo no imprimirá nuevas líneas, cuidado con esto ->

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

echo $(GET_RECORDS);

Como en el ejemplo anterior, el funcionamiento real del método puede estar envuelto en un eco que reemplaza cualquier eco que pueda haber en el método mismo. Obviamente lo diluí por brevedad, ¡no fue tan fácil de detectar!

A continuación, puede informar a sus camaradas que una mejor forma de ejecutar funciones sería así:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

GET_RECORDS;

32
2017-08-08 20:15



Tratar

echo -e "hello\nworld"
hello
world

trabajado para mí en nano editor.


20
2017-12-05 11:06



Esto funciona para mí en raspbian,

echo -e "hello\\nworld"


17
2018-04-19 19:05