我有一个bash脚本需要执行一些
PHP脚本并取回结果,例如
#!/bin/bash /usr/bin/PHP -f $HOME/lib/get_fifobuild.PHP
脚本get_fifobuild.PHP返回一个我需要分配给bash变量的整数.如果有人帮助我,我会很感激.
谢谢 :)
<?PHP echo PHPinfo(); exit; ?>
bash脚本:
#!/bin/bash HOME=`dirname $0`; log(){ NEW_LOG=$HOME/logs/cloud-`date +%d_%m_%Y`.log echo $1 >> $NEW_LOG } log "Date: `date`"; data=$(/usr/bin/PHP -f $HOME/lib/show.PHP); log $data;
输出:
Date: Fri Jun 15 19:16:00 PKT 2012 PHPinfo()
没有运气了
myvariable=$(/usr/bin/PHP -f $HOME/lib/get_fifobuild.PHP)
将PHP脚本的输出分配给名为“myvariable”的变量.
更新:
这会将命令的输出分配给变量,但是由于您仍然遇到问题,我可以建议一些事情:
>你在其他地方有’get_builds.PHP’和’get_fifobuild.PHP’.
>检查$HOME是否正确设置.在这里使用不同的变量名称可能会更好,因为环境变量通常设置为您的主目录.但是,当您从脚本获取输出时,这不太可能是问题.
>您提供的文件是PHP文件的确切内容吗?如果你有报价
例如,在PHPinfo()周围,它会使输出只是字符串“PHPinfo()”.实际上,您根本不需要echo,并且可以使PHP文件的内容如下所示.
get_fifobuild.PHP:
<?PHP PHPinfo(); ?>
更新2:
尝试将脚本更改为:
#!/bin/bash HOME=`dirname $0`; log(){ NEW_LOG=$HOME/logs/cloud-`date +%d_%m_%Y`.log echo "$1" >> $NEW_LOG } log "Date: `date`"; data=$(/usr/bin/PHP -f $HOME/lib/show.PHP); log "$data";