如何删除 sftp stderr 错误消息中的 CR

如何删除 sftp stderr 错误消息中的 CR

我正在使用 Linux 2.6.32-573.26.1

我使用 a_script 运行批处理 sftp 从另一台 Linux 服务器获取文件

以下是运行 a_script 的方法

a_script > a_script.log.wri 2>&1

以下是 a_script:

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

在 myCommandFile 中,有以下命令:

lls an_non_exist_file

因为找不到 an_non_exist_file
错误信息是:

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

因此,a_script.log.wri 将包含所有内容,包括行

Shell exited with status 2^M

这句话把一切都破坏了。

因为 a_script.log.wri 中有一个回车符 ^M ,当我将此文件附加到电子邮件并发送到 gmail 时,gmail 无法打开它。

尽管它是一个扩展名为 wri 的文件,但 gamil 就是无法打开它。

我正在使用 Nexus 5x 阅读 gmail 中的电子邮件。Android 无法打开附件文件 a_script.log.wri

我尝试在 Linux 中创建一个文件 dummy.wri,该文件有 5 行,其中只有第 3 行以回车符结尾。其他 4 行以 LF 结尾。

然后,我将这个 dummy.wri 文件附加到电子邮件中并发送到 gmail 帐户。

嗯,确实无法打开 dummy.wri

如果没有结束的回车符,则一切正常。我可以在 Nexus 5x 的 Android 内部的 gmail 中打开它。

所以,我的问题是,如何让 sftp 在显示错误消息时不添加回车符?

另外,不使用 lls,而是使用 ls an_non_exist_file 也会出现类似的情况。

萧亚文

相关内容