Como remover o CR na mensagem de erro no sftp stderr

1

Estou usando o Linux 2.6.32-573.26.1

Eu uso o a_script para executar o lote sftp para obter o arquivo de outro servidor Linux

Aqui está o caminho para executar o a_script

a_script > a_script.log.wri 2>&1

Aqui está um_script:

echo script start at 'date'
sftp -b myCommandFile user@server 
echo script end at 'date'

Dentro do myCommandFile, existem estes comandos:

lls an_non_exist_file

Porque não é possível encontrar an_non_exist_file
A mensagem de erro é:

ls: cannot access an_non_exist_file: No such file or directory  
Shell exited with status 2^M  

Assim, a_script.log.wri conterá tudo, incluindo a linha

Shell exited with status 2^M

É esta linha para estragar tudo.

Porque há um caractere Carriage-return ^ M no arquivo a_script.log.wri , quando eu anexar este arquivo em um e-mail e enviar para o gmail , o Gmail não pode abri-lo.

Embora seja um arquivo com extensão wri , o gamil simplesmente não abre.

Estou usando o Nexus 5x para ler o e-mail dentro do gmail. O Android não abre o arquivo de anexo a_script.log.wri

Eu tento criar um arquivo dummy.wri dentro do Linux com 5 linhas e apenas a terceira linha com um caractere de retorno carriage-return. Outras 4 linhas terminam com LF.

Depois, anexei este arquivo dummy.wri em um email e enviei para a conta do Gmail.

Bem, realmente não é possível abrir o arquivo dummy.wri

Se não houver final de retorno de carro, está tudo bem. Eu posso abri-lo dentro do gmail dentro do Android do Nexus 5x.

Então, minha pergunta é, como fazer o sftp NÃO adicionar o caractere de retorno de carro ao exibir a mensagem de erro?

Além disso, em vez de usar o lls, o uso do ls an_non_exist_file terá uma situação semelhante.

Alvin SIU

    
por Alvin SIU 06.07.2016 / 07:03

0 respostas