Вобщем не пойму как сделать такую штуку
Есть файл $DB_SETTINGS_FILE со строкой вида:
$db_url = 'mysql://user:pass@host/db';
хочу в sh скрипте считать юзернейм, пасс, хост и дб в соответствующие переменные. Делаю так (можете не вчитываться в регексп. он 100% верный):
grep ^\$db_url $DB_SETTINGS_FILE | \
sed s'#^.*mysql://\([^:]*\):\([^@]*\)@\([^/]*\)/\([^'\'']*\).*#\1 \2 \3 \4#' | \
read DB_USERNAME DB_PASSWD DB_HOST DB_NAME
но в итоге переменные всёравно оказываются пустыми
погуглив, понял что при создании | пайпа, команда read выполняется в отдельном шелле и после завершения не возвращает обратно свои переменные. Поигрался с
export, но так и не смог добится результата=(
Остановился на конструкции grep ... | sed '....' | ( read ... ; остальное тело скрипта; )
Но это очень неудобно.
Вопрос: как мне модифицировать тот кусок чтобы он устанавливал мне переменные в текущем environment?
Хочется решение на sh, но на крайний случай сойдёт и bash
З.Ы. Конечно можно было сделать навроде:
DB_USERNAME=`многа букоф \1`
DB_PASSWD=`многа букоф \2`
DB_HOST=`многа букоф \3`
DB_NAME=`многа букоф \4`
но это както не кошерно...
Ответ на:
комментарий
от sdio
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум шелл скрипт (2004)
- Форум Шелл скрипт, запутался. (2008)
- Форум unit для шелл скрипта (2018)
- Форум шелл скрипт смены пользователя (2009)
- Форум Нужен скрипт на шелле (2001)
- Форум Нужен скрипт на шелле (2001)
- Форум Подскажите скрипт на шелле (2004)
- Форум локи в шелл-скриптах (2004)
- Форум pidof -x и шелл-скрипт (2011)
- Форум запуск ImageMagick из шелл скрипта (2014)