En Bash, intente 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 (Natty Narwhal).

8

Podrías usar printf en lugar de:

printf "hellonworldn"

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

15

Asegúrate de estar en Bash. Todas estas cuatro formas funcionan para mí:

echo -e "Hellonworld"
echo -e 'Hellonworld'
echo Hello$'n'world
echo Hello ; echo world

15

echo $'hellonworld'

huellas dactilares

hello
world

$'' uso de cadenas Cotización ANSI C:

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

6

Siempre podrías hacer echo "".

Por ejemplo,

echo "Hello,"
echo ""
echo "World!"

4

Tratar

echo -e "hellonworld"
hello
world

Funcionó para mí en el nano editor.

Desde la página del manual:

-e habilitar la interpretación de los escapes de barra invertida

En la remota posibilidad de que alguien se golpee la cabeza contra la pared tratando de averiguar 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 "startingn 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 en sí. Obviamente diluí esto por brevedad. ¡No fue tan fácil de detectar!

Luego puede informar a sus compañeros que una mejor manera de ejecutar funciones sería así:

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

GET_RECORDS;

1

Simplemente escriba

echo

para obtener una nueva línea

7

Esto funciona para mi en Raspbian,

echo -e "hello\nworld"

2

POSIX 7 en eco

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

-e no está definido y las barras invertidas están definidas por implementación:

Si el primer operando es -n, o si alguno de los operandos contiene un carácter , los resultados están definidos por la implementación.

a menos que tenga una extensión XSI opcional.

Así que te recomiendo que uses printf en cambio, que está bien especificado:

El operando de formato se utilizará como la cadena de formato descrita en Notación de formato de archivo XBD […]

los Notación de formato de archivo:

n Mueve la posición de impresión al inicio de la siguiente línea.

También tenga en cuenta que Ubuntu 15.10 y la mayoría de las distribuciones implementan echo ambos como:

  • un Bash incorporado: help echo
  • un ejecutable independiente: which echo

lo que puede generar cierta confusión.

str="hellonworld"
$ echo | sed "i$str"
hello
world

2

También puedes hacer:

echo "hello
world"

Esto funciona tanto dentro de un script como desde la línea de comandos.

En la línea de comando, presione Cambio+Ingresar para hacer el salto de línea dentro de la cadena.

Esto funciona para mí en mi macOS y mi Ubuntu 18.04 (Castor biónico).

0

Me funciona en CentOS:

echo -e ""hellonworld""

Solo uso echo sin ningún argumento:

echo "Hello"
echo
echo "World"