正如您在Drupal中所瞭解的那樣,存在一個包含數據庫連接器的settings.php文件。
$ db_url ='mysql:// username:password @ localhost/databasename';
我想要一個shell腳本來提取'databasename'字符串,並對其進行回顯。使用shell腳本從settings.php中提取Drupal數據庫名稱
非常感謝幫助。
感謝
正如您在Drupal中所瞭解的那樣,存在一個包含數據庫連接器的settings.php文件。
$ db_url ='mysql:// username:password @ localhost/databasename';
我想要一個shell腳本來提取'databasename'字符串,並對其進行回顯。使用shell腳本從settings.php中提取Drupal數據庫名稱
非常感謝幫助。
感謝
您可以使用:
#!/bin/bash
dbname=`grep db_url settings.php | cut -d "/" -f 4`
echo ${dbname%"';"}
第一行的settings.php搜索爲db_url,然後通過管道進入該切口,去除第3條斜線之前的所有文本。最後,最後的':被從變量的末尾移除並且被回顯。此代碼非常依賴於url的格式,它依賴於數據庫名稱前總是有3個斜線的事實。
以下命令行將從您的Drupal的settings.php 6文件中提取數據庫名稱(這是您使用的一個吧?),並呼應它作爲輸出:
grep ^'$db_url' settings.php | cut -d "/" -f 4 | cut -d "'" -f 1
如果您想使用它在bash腳本只創建一個文本文件,使之運行(chmod U + X名)並運行它:
#!/bin/bash
grep ^'$db_url' settings.php | cut -d "/" -f 4 | cut -d "'" -f 1
注意:7的Drupal的settings.php文件略有不同和建議的命令/腳本不會爲它工作。你是否也需要它用於Drupal 7?
這對我的作品爲Drupal 7:
grep " 'database' =>" settings.php | cut -d ">" -f 2 | cut -d "'" -f 2
是的,它也取決於文件格式,在settings.php中含有大量db_url字符串所以其印刷的一切 – Valor
哦,真的,我從來沒有使用過的Drupal我推測$ db_url只聲明瞭一次,然後從未在該文件中使用過。對於那個很抱歉。 – whg