Inclua apenas uma nova linha dentro das aspas (isso funciona com aspas simples ou duplas). Observe que, se a segunda linha for recuada, os espaços farão parte da string. Além disso, use sempre aspas duplas substituições de variáveis .
str="deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free"
echo "$str" > test
Ksh, bash e zsh (mas não sh simples) têm uma sintaxe alternativa de aspas $'…'
em que a barra invertida inicia uma seqüência de escape semelhante a C, portanto você pode escrever \n
para representar uma nova linha. No seu caso, seria menos legível:
str=$'deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free\ndeb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free'
echo "$str" > test
Um documento aqui é muitas vezes uma maneira mais legível de apresentar strings de múltiplas linhas. Note que um documento aqui é passado como entrada padrão para o comando, não como um argumento de linha de comando.
cat <<EOF >test
deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-free
EOF
¹ Ou mais geralmente como entrada se você especificar um descritor de arquivo alternativo.