我有一个正在 Cygwin 中执行的 shell 脚本(也许这就是问题所在)。对于这段代码,我只想编写第一行,并附加一个换行符:
echo "`date` User `whoami` started the script." >> output.log
echo >> output.log
但output.log 文件似乎永远不会休息。如果我多次运行脚本,就好像第二个回显没有写入文件。
我也尝试过:
echo -e "`date` User `whoami` started the script.\n" >> output.log
它产生相同的结果。
奇怪的是,如果我只是在命令行上输入上面的第二个 echo 语句,而不附加到文件,它会为我提供带有尾随换行符的预期输出。
我敢打赌问题是 Cygwin 正在将 Unix 行结束符 (LF) 写入文件,而您正在使用需要 Windows 行结束符 (CRLF) 的程序打开它。要确定是否是这种情况(以及一些黑客的解决方法),请尝试:
echo "`date` User `whoami` started the script."$'\r' >> output.log
(其中$'\r'
最后是一个额外的回车符;它加上 Unix 行结尾,将导致 Windows 行结尾)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)