在 Windows 中,我使用 putty plink 执行远程 shell 脚本
cmd>plink.exe -ssh username@hostipd -pw gbG8qs4 /user/alice/listoffiles.sh > C:\log1.txt
远程服务器中的 Shell 脚本
#! /bin/bash
echo -e "Hellow\nWorld"
我在 log1.txt 中得到的输出是 HelloWorld,没有任何换行符。如何获得输出为
Hello
World
答案1
您在输出中得到换行符。问题是这是一个 Unix 换行符,Windows 无法识别。 Unix 将换行符编码为 LF(换行)字符,而 Windows 换行符由两个字符序列 CRLF(回车、换行)组成。
要在 Windows 下正确查看输出,只需使用除记事本编辑器type
中的命令之外的任何内容。cmd
如果您想使用 Windows 换行符生成输出,您可以通过管道传输脚本sed 's/$/\r/'
。但请注意,此输出在 Linux 下无法正常工作:行末尾的额外 CR 字符将被许多应用程序视为该行的一部分。