Uso de tr -d '\n' , remove \n (ou seja, caractere de nova linha) conforme o esperado. Mas você está verificando isso com o comando echo . O próprio comando Echo colocará o novo caractere de linha @ fim da string de entrada e, portanto, você não conseguirá ver a saída esperada.
Verifique a variável abaixo do conjunto de comandos.
test2=$(echo "$test" | tr -d '\n')
printf "%s" $test2 | od -c
echo -n $test2 | od -c
Saída de script:
0000000 h e l l o
0000005
0000000 h e l l o
0000005
Nota: echo -n: Da página man echo: -n não exibe a nova linha final printf: não anexa \ n no final