извлечение имени базы данных из wp-config.php файл

#wordpress #bash #ssh #command-line-interface

#wordpress #bash #ssh #интерфейс командной строки

Вопрос:

Здравствуйте, я пытаюсь запустить свой ssh-скрипт bash из root (который имеет доступ ко всем сотням баз данных на моем сервере). Я пытаюсь получить имя базы данных моих веб-сайтов WordPress без необходимости входить в систему, открывать файл и копировать и вставлять имя базы данных. Я делаю это, чтобы затем продолжить выполнять другие действия в конкретной базе данных, используя скрипты.

Итак, строка для базы данных в файле wp-config.php всегда выглядит так: name define( ‘DB_NAME’, ‘xyz’);

Я просто пытаюсь найти эту строку, а затем получить / извлечь и использовать это имя базы данных (т. Е. xyz) позже в скрипте (т. Е. $db). Вот и все.

Я предполагаю, что использование grep / sed / regex или combo или чего-то еще сделает это, но я не могу выяснить, как. Дайте мне знать, если кто-нибудь знает, как это сделать?

Комментарии:

1. Пожалуйста, добавьте пример ввода (без описаний, без изображений, без ссылок) и желаемый результат для этого примера ввода к вашему вопросу (без комментариев).

Ответ №1:

Это подходящая задача для sed. Выбираем соответствующую строку определения с помощью регулярного выражения и извлекаем значение с помощью группы захвата:

 db=$(sed -n "s/define( *'DB_NAME', *'([^']*)'.*/1/p" wp-config.php)
echo $db
  

Комментарии:

1. Хорошо, большое спасибо за ответ! Какую переменную я бы использовал для передачи значения? т.е. если бы я использовал $ db или что-то в этомроде. Как бы я вызвал это резервное копирование в следующей строке скрипта?

2. Для сохранения результата требуется замена командной строки. Я добавил закодированное к ответу