为什么我的cron输出文件名结尾有一个\r?

为什么我的cron输出文件名结尾有一个\r?,cron,Cron,在我的cron spool中,我正在做: 5****php test.php>>test.txt 我可以看到cron正在运行PHP脚本,但输出文件名为: “test.txt\r” 为什么? 如何打开该文件以查看其中的内容,或者如何使cron不附加该文件?我相信您一定在Windows计算机上编辑了crontab Linux用\n终止其行。Windows使用\r\n执行此操作。在Linux上,\r只是另一个字符。因此,您的crontab可能会显示: 5 * * * * php test.php &g

在我的cron spool中,我正在做:

5****php test.php>>test.txt

我可以看到cron正在运行PHP脚本,但输出文件名为:

“test.txt\r”

为什么?


如何打开该文件以查看其中的内容,或者如何使cron不附加该文件?

我相信您一定在Windows计算机上编辑了crontab

Linux用
\n
终止其行。Windows使用
\r\n
执行此操作。在Linux上,
\r
只是另一个字符。因此,您的crontab可能会显示:

5 * * * * php test.php >> test.txt\r

如果您在Linux上使用显示控制字符的编辑器打开它,它将向您显示。

尝试在cron文件上运行命令
dos2unix
。假设您使用的是Debian/Ubuntu操作系统:

sudo dos2unix /etc/cron.d/your_cronfile_name
如果文件是在Windows环境中创建或编辑的,则会发生这种情况。因为它有一个尾随的
\r
字符,通常由窗口的文本编辑器追加。正如Amadan所提到的,这个
\r
字符被附加到
test.txt
字符串的末尾