Linux文件上的退格问题

时间:2012-05-04 18:34:14

标签: linux bash editplus

我使用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         回声     }     停止(){

3 个答案:

答案 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 /原子中设置“行结束顺序”并保存对我有用