Quando lo faccio
str="Hello Worldn===========n"
Ottengo il n
anche stampato. Come posso avere nuove righe allora?
Risposta accettata:
In bash
puoi usare la sintassi
str=$'Hello Worldn===========n'
Virgolette singole precedute da $
è una nuova sintassi che permette di inserire sequenze di escape nelle stringhe.
Anche printf
builtin permette di salvare l'output risultante in una variabile
printf -v str 'Hello Worldn===========n'
Entrambe le soluzioni non richiedono una subshell.
Se di seguito è necessario stampare la stringa, è necessario utilizzare le virgolette doppie, come nell'esempio seguente:
echo "$str"
perché quando stampi la stringa senza virgolette, i newline vengono convertiti in spazi.