Извлеките имя базы данных Drupal из settings.php, используя скрипт оболочки - PullRequest
0 голосов
/ 10 сентября 2011

Как вы знаете, в Drupal есть файл settings.php с соединителем базы данных.
$ db_url = 'mysql: // имя пользователя: пароль @ localhost / databasename';
Я хотел бы извлечь сценарий оболочкистрока, которая является «базой данных» и повторяет ее.

Помощь очень ценится.
Спасибо

Ответы [ 3 ]

2 голосов
/ 11 сентября 2011

Вы можете использовать:

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

Первая строка ищет файл settings.php для db_url , а затем направляет его в разрез, который удаляет весь текст перед первыми 3-мя слешами.Наконец, последнее ': удаляется из конца переменной, и оно отображается.Этот код очень зависит от формата URL, он основан на том факте, что перед именем базы данных всегда будет 3 косых черты.

0 голосов
/ 17 сентября 2014

Это работает для меня на Drupal 7:

grep "      'database' =>" settings.php  | cut -d ">" -f 2 | cut -d "'" -f 2
0 голосов
/ 11 сентября 2011

Следующая командная строка извлечет имя базы данных из вашего файла 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

Notice : настройки Drupal 7.PHP-файл немного отличается, и предлагаемая команда / скрипт не будет работать для него.Вам это тоже нужно для Drupal 7?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...