Nueva línea de eco en Bash imprime literal \n
¿Cómo imprimo una nueva línea? Esto simplemente imprime \n
:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
Utilice printf
en su lugar:
printf "hello\nworld\n"
printf
se comporta de manera más consistente en diferentes entornos que echo
.
Asegúrate de estar en Bash.
$ echo $0
bash
Estas cuatro formas funcionan para mí:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
echo $'hello\nworld'
huellas dactilares
hello
world
$''
las cadenas utilizan ANSI C Citando :
Las palabras de la forma se tratan de manera especial. La palabra se expande a cadena , con caracteres de escape con barra invertida reemplazados según lo especificado por el estándar ANSI C.
$'string'
Siempre puedes hacerlo echo ""
.
Por ejemplo,
echo "Hello,"
echo ""
echo "World!"
En el caso de que alguien se encuentre golpeándose la cabeza contra la pared tratando de descubrir por qué el guión de un compañero de trabajo no imprime nuevas líneas, tenga cuidado con esto:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
echo $(GET_RECORDS);
Como en lo anterior, la ejecución real del método puede estar envuelta en un eco que reemplaza cualquier eco que pueda haber en el método mismo. Obviamente, lo suavicé por brevedad. ¡No fue tan fácil de detectar!
Luego puedes informar a tus camaradas que una mejor manera de ejecutar funciones sería así:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
GET_RECORDS;