我使用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
任何?
感谢。
答案 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中轻松获得。