Echo newline in Bash stampa letterale \ n



Answers

Sei sicuro di essere in balia? Funziona per me, in tutti e tre i modi:

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

In Bash, provato questo:

echo -e "hello\nworld"

Ma non stampa una nuova riga, solo \n . Come posso far stampare la nuova riga?

Sto usando Ubuntu 11.04.




Puoi sempre fare echo "" .

per esempio

echo "Hello"
echo ""
echo "World"



Un'altra voce qui per coloro che non hanno funzionato con una di queste soluzioni e hanno bisogno di ottenere un valore di ritorno dalla loro funzione:

function foo()
{
    local v="Dimi";
    local s="";
    .....
    s+="Some message here $v $1\n"
    .....
    echo $s
}

r=$(foo "my message");
echo -e $r;

Solo questo trucco ha funzionato in una linux su cui stavo lavorando con questa bash:

GNU bash, version 2.2.25(1)-release (x86_64-redhat-linux-gnu)

Spero che aiuti qualcuno con problemi simili.




Funziona ovunque?

echo "Hello
World"



str='hello\nworld'
$ echo | sed "i$str"
hello
world



Questo potrebbe essere fatto meglio come

x="\n"
echo -ne $x

L'opzione -e interpreterà i backslahes per la sequenza di escape
L'opzione -n ​​rimuove la nuova riga finale nell'output

PS: il comando echo ha l'effetto di includere sempre una nuova riga finale nell'output così -n è necessario per disattivare quella cosa (e renderla meno confusa)




Questo funziona per me in raspbian,

echo -e "hello\\nworld"




Links