O retorno do carro coloca o cursor de volta ao começo da linha. Sua string de saída é:
This is yesterday date:20130605<Cr>end
Exceto quando o terminal atinge o <Cr>
, ele retorna o cursor para o início da linha e sobrescreve os caracteres que estão lá .
Em outras palavras, "Thi" é substituído por "end", produzindo:
ends is yesterday date:20130605
Para fazer o que você parece estar tentando fazer, seu script deve ser parecido com isto:
variable="text"
echo "Some sentence $variable"
Qual será a saída
Some sentence text
SE houver retorno de carro perdido, eles devem aparecer como ^M
em vi
(como disse Bruce)
Solução 1
A melhor maneira de remover retornos de carro ou outros caracteres não imprimíveis é com o comando tr
com a opção -d
, que exclui qualquer instância de um único caractere, com \r
, que é a seqüência de escape para transporte retorno:
tr -d '\r'
Isso removerá todas as devoluções de carro. Execute-o no script para remover todas as instâncias de retornos de carro e, em seguida, sobrescreva o arquivo de script original:
tr -d '\r' yourscript.bash > temp
mv temp yourscript.bash
Solução 2
ou enquanto em vi
com o script aberto, digite:
:%s/\r//g
:wq
Para remover os retornos de carro dentro do documento, salve-o.