Linux &燃气轮机;及>&燃气轮机;运营商没有任何影响

Linux &燃气轮机;及>&燃气轮机;运营商没有任何影响,linux,cat,Linux,Cat,当试图将php脚本的输出写入文件时,我遇到了最奇怪的错误。 我使用: 好吧,不管怎样,所有这些都是在控制台中输出的。文件(错误/每日)未被触及 错误/每日有chmod 777。 不同的结构像 #php daily.php >> error/daily 也不要工作。php的输出只是一直在控制台中输出 有什么想法吗?:/提前谢谢 更新: 现在使用 #php daily.php 2> error/daily 它在控制台中不输出任何内容 但错误/每日未被触及,没有写入任何内容 另一

当试图将php脚本的输出写入文件时,我遇到了最奇怪的错误。 我使用:

好吧,不管怎样,所有这些都是在控制台中输出的。文件(错误/每日)未被触及

错误/每日有chmod 777。 不同的结构像

#php daily.php >> error/daily
也不要工作。php的输出只是一直在控制台中输出

有什么想法吗?:/提前谢谢

更新:

现在使用

#php daily.php 2> error/daily
它在控制台中不输出任何内容

但错误/每日未被触及,没有写入任何内容

另一更新:

#php daily.php 2>> error/daily
按预期工作(将错误输出附加到文件),而

只需清空文件,不向其中写入任何内容。
知道为什么会发生这种情况吗?

这是在shell提示符下发生的吗?这些括号导致在shell的新调用中执行封闭的命令;重定向将应用于shell本身的输出,而shell本身没有任何输出。shell执行的命令仍会将其输出打印到控制台。放下括号;它们是不必要的,也是问题的根源。

在终端中,程序有两种输出:标准输出和错误输出。默认情况下,两者都显示在控制台中

>(和>>)操作符将标准输出重定向到文件,但将错误输出保留在控制台中

由于您似乎试图将错误重定向到文件,php必须写入错误输出。要完成你想做的事,你必须去做

php daily.php 2> error/daily
如果您想重定向这两个输出,您也可以这样做

编辑:不要这样做。 如果要重定向两个输出,请在不同的文件中重定向。例如:

php daily.php 2> error/daily 1> output.txt

不,我实际上加了括号,因为没有括号就不行了。我想也许这样行。好吧,因为它们没有区别,我将编辑我的问题并删除它们。好吧,我想知道这是否是
php
可执行文件本身的一些奇怪属性,所以我在我的系统上尝试了这一点;它工作得很好。很奇怪。是的,我让两个朋友在他们的电脑上试了一下——效果很好。真奇怪。好吧,我试试看,谢谢。但是标准输出显然被丢弃,而不是写入error/daily,因为文件未被修改--编辑:是的,当我使用2>时,它不会输出任何内容。我不知道你的daily.php做了什么,但是有可能标准输出中没有任何内容。对于每天执行的维护脚本来说,这可能更奇怪#php daily.php 2>error/daily清空文件,不向其中写入任何内容#php daily.php 2>>error/daily将错误写入文件(如中所示,根据需要工作)。那么…为什么#php daily.php 2>error/daily不起作用呢?2>>将错误和标准输出都写入文件。(未添加1>&2)似乎我犯了一个错误。不要添加1>&2,这就是为什么在第一种情况下文件是空的,因为文件被擦除以写入错误,然后再次擦除以写入标准错误。你确定标准输出上真的有东西吗?如果您没有添加1>&2,我不确定是否可以帮助您。也许php做了一些我不知道的事情,但我对此表示怀疑。
php daily.php 2> error/daily
php daily.php 2> error/daily 1>&2
php daily.php 2> error/daily 1> output.txt