2014-01-24 58 views
0

script.shbash脚本具有从PHP了shell_exec

cd ~/scripts 
acname=$(cat acname.txt) 
days=$(cat days.txt) 
nbmessages=`ls -l message_*.txt | wc -l` 
today=`date +%Y%m%d` 
# 
echo $acname >> ./log.txt 
echo $days >> ./log.txt 
echo $nbmessages >> ./log.txt 
echo $today >> ./log.txt 

推出的时候,如果我在shell提示符下运行script.sh不同的行为,log.txt中显示:

alex8 
4 
5 
20140124 

这是正确的

如果我运行在PHP中使用了shell_exec功能script.sh,log.txt中显示:

log.txt: 


0 
20140124 

因此,获取文件的内容不起作用,也不计算具有特定模式的文件(当它应该是5时得到0),而date命令仍然有效。 有什么想法? 非常感谢提前!

+1

'〜/ scripts'转到您的主目录的脚本子目录。这可能与运行php的Web服务器进程的主目录不同。 –

+0

我会尝试回显密码,看看我在哪里,在每种情况下 – Alex

+0

,你是正确的,pwd给出了不同的迪尔在这种情况下 – Alex

回答

0

~/scripts转到您的主目录的脚本子目录。这可能与运行php的Web服务器进程的主目录不同。

通常使用完整路径可以帮助缓解这样的问题,但您仍然必须与确保Web服务器进程对所涉及文件具有权限相抵触。