我使用EditPlus编写linux bash程序。写入文件后我将文件移动到服务器时出现这种错误:
sleep: invalid time interval `2\r'
Try `sleep --help' for more information.
/usr/bin/program: line 9: $'\r': command not found
/usr/bin/program: line 10: $'}\r': command not found
/usr/bin/program: line 11: $'\r': command not found
/usr/bin/program: line 12: syntax error near unexpected token `$'{\r''
'usr/bin/program: line 12: `stop() {
我也使用dos2unix来解决这个问题,但没有成功。我想知道有什么方法可以避免这种问题。它浪费了很多时间。是否有更好的编辑或某种方法来解决这个问题?
编辑:
我要解决的问题是我在linux中查看文件,然后逐行从windows文件复制到linux文件,然后就可以了。这些是我的代码行:
第7行:udevadm控制--reload-rules
睡觉2
回声
echo $(date +“%b%e%T”)hostname
Program [$$]:Program Started | tee -a / var / log / messages
回声
}
停止(){
答案 0 :(得分:7)
您需要更改文件首选项:转到偏好设置 - >文件并将“创建新文件”更改为UNIX。此外,您可能希望启用“检查无效的CR / LF,加载时为空字符”选项。
答案 1 :(得分:1)
对于已生成的文件
cat OLDFILE | tr -d '\r' > NEWFILE
应该有所帮助。您不能只将输出重定向到输入:
cat FILE | tr -d '\r' > FILE
因为这会在读取之前截断输入文件。
与类似的程序相比,由于tr
不接受文件名作为参数,因此不适用于无用的猫奖励。
答案 2 :(得分:0)
从CRLF到LF在VSCode /原子中设置“行结束顺序”并保存对我有用