说我有一个文件(因为它发生的PHP),与一些变量声明:解析文件和模式匹配复制到一个变量
$dbuser = 'fred';
$dppass = 'abc123';
$dhhost = '127.0.0.1';
我想从一个bash脚本做什么,解析这个文件,确定我需要的变量,并将它们的值读入我可以从BASH脚本访问的变量中。
显然,上述文件是PHP,还有其他的线,我不是有意
我可以使用下面的命令解压我从bash shell中所需的信息:
整齐地返回
fred
但是当我试图把它添加到一个bash脚本输出放到使用反引号的变量,如下所示:
dbuser=`grep \$dbuser config.php.inc | grep -Po "\'.*\'" | cut -d \' -f 2`
我的BASH脚本在此处挂起。
为什么这样挂着,或者,有没有更好的方法来实现我想要实现的目标?
哇!这是一个干净的做法。它会在一个调用mysql_connect函数'$ db = mysql_connect(...',但我可以轻松地将其转换为不同的包含以获得它的线路上失败。 – Bryan 2011-05-30 16:32:19
...而失败,我的意思是''eval'部分将失败 – Bryan 2011-05-30 16:33:23
'sed'版本不能很好地工作,因为它不能处理文件中的其他行,包括''和注释行,'ini_set', require_once'和一些其他的PHP特定行 – Bryan 2011-05-30 18:39:06