Вобщем не пойму как сделать такую штуку
Есть файл $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


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Перенаправление шелла (2020)
- Форум NetBsd'шный шелл (2011)
- Форум Разновидности шеллов (2020)
- Форум Загадки шелла (2021)
- Форум Нестандартные шеллы (2010)
- Форум Нормальный шелл (2007)
- Форум Безопасный шелл (2003)
- Форум потерял шелл (2004)
- Форум Програмирование Шелл (2004)
- Форум шелл скрипт (2004)