如何通过PHP的shell脚本将文本推送到新创建的文件中?

时间:2011-10-03 15:07:28

标签: php

我使用PHP站点运行shell脚本,并在/ opt / xampp / htdocs中创建了我想要的名称文件“result.txt”。但是,当它应该具有来自shell脚本的输出值时,result.txt完全为空。尝试在终端上,result.txt在桌面上创建,输出就在那里。试过PHP,创建了result.txt,但里面完全没有输出。

这是一个很长的剧本,所以这里是前几行:

# creates result.txt
touch result.txt

##makes the .txt read only
chmod 444 result.txt 


clear


###################################################
# This option audits the password and             #
# shadow files on the system                      #
###################################################

##option 2.1.1
echo -e "=========================================================================================" >> result.txt
echo "                                  SHADOWED PASSWORD CHECK                                   " >> result.txt
echo "=========================================================================================" >> result.txt

任何?

感谢。

2 个答案:

答案 0 :(得分:0)

首先,完全没必要重定向每个echo调用的输出 - 在shell脚本的开头使用它来将STDOUT重定向到输出文件。

exec &> results.txt

其次 - 您的chmod到444不会让Apache / PHP用户可以写入文件 - 如果需要的话,我会在脚本的最后执行此操作。

答案 1 :(得分:0)

首先尝试使用chdir($ folder)更改工作目录。

<?php
chdir("/testfolder/");
exec("./script.sh");
?>

但是,为什么不把脚本写成php?诸如touch,chmod和unix shell中提供的所有其他命令之类的东西都可以在php中轻松获得。