使用shell脚本从settings.php中提取Drupal数据库名称

时间:2011-09-10 19:58:51

标签: bash drupal shell

正如您在Drupal中所知,有一个带有数据库连接器的settings.php文件 $ db_url ='mysql:// username:password @ localhost / databasename';
我想要一个shell脚本来提取字符串'databasename'并回显它。

非常感谢帮助 感谢

3 个答案:

答案 0 :(得分:2)

您可以使用:

#!/bin/bash
dbname=`grep db_url settings.php | cut -d "/" -f 4`
echo ${dbname%"';"}

第一行搜索settings.php中的 db_url ,然后将其传递到cut中,删除前3个斜线之前的所有文本。最后,最后一个':将从变量的末尾删除,并进行回显。此代码非常依赖于url的格式,它依赖于数据库名称前总是有3个斜杠的事实。

答案 1 :(得分:0)

以下命令行将从您的Drupal 6 settings.php文件中提取数据库名称(您使用的是哪一个,对吧?)并将其作为输出回显:

grep ^'$db_url' settings.php | cut -d "/" -f 4 | cut -d "'" -f 1

如果你想在bash脚本中使用它,只需创建一个文本文件,使其可执行(chmod u + x filename)并运行它:

#!/bin/bash
grep ^'$db_url' settings.php | cut -d "/" -f 4 | cut -d "'" -f 1

注意:Drupal 7 settings.php文件略有不同,建议的命令/脚本无效。你是否也需要Drupal 7?

答案 2 :(得分:0)

这适用于Drupal 7:

grep "      'database' =>" settings.php  | cut -d ">" -f 2 | cut -d "'" -f 2