正如您在Drupal中所知,有一个带有数据库连接器的settings.php文件
$ db_url ='mysql:// username:password @ localhost / databasename';
我想要一个shell脚本来提取字符串'databasename'并回显它。
非常感谢帮助 感谢
答案 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