Se você quiser que uma função mostre apenas a saída de um comando, não há necessidade de capturar a saída e, em seguida, echo novamente.
Basta executar svn status -uq diretamente. O stdout também será enviado da chamada de função.
Se você realmente precisa usar variáveis e echo , você precisa citar o argumento passado para echo se quiser que o espaço em branco seja preservado: echo "$status" .
A razão é que $status conterá literalmente o seguinte:
M * 764 update
Status against revision: 771
Quando você executar echo $status , echo será chamado assim:
echo M * 764 update \
Status against revision: 771
Este é mais do que um parâmetro, uma vez que o Bash divide os argumentos no espaço em branco ( ver $IFS ) . echo imprimirá cada argumento, separado por um espaço, portanto, enquanto o restante da linha estiver bem, a nova linha será - em essência - colapsada em um espaço.
Se você cercar o argumento com uma citação, echo somente o verá como um argumento e o imprimirá corretamente novamente.
O Wiki do Bash tem uma boa leitura sobre citações e lista algumas razões pelas quais você deve sempre cite suas variáveis além de algumas exceções.