gpt4 book ai didi

php - PHP exec 调用中的重定向创建空文件

转载 作者:可可西里 更新时间:2023-11-01 13:30:40 25 4
gpt4 key购买 nike

这很简单,我没有想法。我确信有一个快速的解决方法。

exec('echo 123 &> /var/log/123.log');

我确定这与权限无关,因为文件 123.log 已创建,但它只是 - 空的。我也试过 shell_exec,但它根本不创建文件。还尝试了所有重定向变体,即 1> 2>>

使用 PHP 捕获输出不是一种选择,因为生产中的输出很大,我不想遇到内存问题。

任何想法表示赞赏。

顺便说一句,我使用的是 Ubuntu 12.04 LAMP。

最佳答案

Debian 和基于 Debian 的 Linux 发行版(如 Ubuntu)现在使用 dash 而不是 bash 作为/bin/sh。

&> 是一个 bash 扩展,dash 不知道。

编写 cmd &> file 的正确 posix 兼容方式是 cmd > file 2>&1

cmd > file 2>&1 适用于所有 posix 兼容的 shell:dash、bash、ksh、zsh、ash ...

因此您需要将代码更改为:

exec('echo 123 > /var/log/123.log 2>&1');

关于php - PHP exec 调用中的重定向创建空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com