我正在编写一个Bash脚本来从每个网站的config.PHP文件中读取数据库名称,然后从备份库中导入数据库.
我尝试使用source config.PHP,但它似乎无法识别PHP变量.
任何帮助,将不胜感激.
解决方法:
非常简化的版本如下:
cat config.PHP
$variable1 = 'foo with bar';
$variable1 = 'foo2 with bar2';
将Bash $variable1设置为config.PHP中$variable1的最后匹配实例,以防它已被重置.如果要将其更改为第一个匹配项,只需在以下代码中将tail -1更改为head -1:
variable1="$(grep -oE '\$variable1 = .*;' config.PHP | tail -1 | sed 's/$variable1 = //g;s/;//g')"
通过echo确认Bash变量:
echo "$variable1"
'foo2 with bar2'
请注意,这主要适用于字符串.有许多类型的PHP变量无法直接转换为Bash变量.上面的代码将获取config.PHP中引用的最后一个$variable1.就像我说的那样,如果已经多次设置了该变量,则可以通过在设置变量的Bash命令中切换head或tail来设置第一个值或最后一个值.