Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Dmitry.Karpov http://prof Гость
|
Добавлено: Ср Ноя 05 2003 21:21 Заголовок сообщения: Переменные shell |
|
|
Пишу /etc/rc.conf на FreeBSD c ldevz ctntdsvb rfhnfvb. Чтобы было удобнее, я решил ввести две переменные: external_interface="xl0" intranet_interface="x l1" и использовать их как в задании значения переменной natd_interface=${external_interface} так и в задании переменной ifconfig_xl0="inet ..." И вот с последним вышла затыка - ifconfig_${external_interface}="inet ..." не срабатывает. Подозреваю, что тут нужно использовать eval, но она ругается на пробелы, хотя те заэкранированы кавычками. Проблема решена взятием закавыченного в апострофы: eval ifconfig_${external_interface}=`"inet ..."` но я не совсем понял, в чём тут дело. Кто может ткнуть в толковый мануал, прямо в пункт, где это освещено? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Ср Ноя 05 2003 22:45 Заголовок сообщения: Re: Переменные shell |
|
|
Ну в общем-то man bash как говориться в помощь...
Мне не понятно как именно ты используешь переменные. На основе имеющихся переменных создаешь новые и сразу их инициализируешь? Или обращаешься к значениям переменных имена которых динамически опеределяешь? |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Чт Ноя 06 2003 13:20 Заголовок сообщения: Как я это использую |
|
|
Во FreeBSD нет bash - я использую sh (как и все стартовые скрипты).
Во FreeBSD сетевые интерфейсы задаются именем и номером: xl0 - первая сетевая карта 3c90x xl1 - вторая сетевая карта 3c90x dc0 - первая сетевая карта DEC/Intel 21143 ну и аналогично
Чтобы задать IP-параметры для xl0, я должен в /etc/rc.conf написать: ifconfig_xl0="inet 172.16.0.1 netmask 255.255.0.0"
Чтобы запустить natd на этой сетевой карте как на внешнем интерфейсе, я должен прописать natd_enable="YES" natd_interface="xl0"
Так вот, это самое "xl0", встречающееся в разных местах, я хочу записать в некой переменной; но во втором случае оно используется в правой части присваивания, а в первом случае - в левой, что нетривиально. |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пт Ноя 07 2003 21:13 Заголовок сообщения: Х.з. я попробовал создавать динамически переменную. Не получилось. :( (-) |
|
|
- |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Пт Ноя 07 2003 23:52 Заголовок сообщения: Напиши, как ты это делал и что получил - я гляну (-) |
|
|
- |
|
Вернуться к началу |
|
|
butcher
Зарегистрирован: 18.04.2003 Сообщения: 467 Откуда: Киров
|
Добавлено: Сб Ноя 08 2003 16:47 Заголовок сообщения: посмотри как это сделано в скрипте /etc/rc.network (+) |
|
|
там где разбираются статические маршруты берётся цикл по переменной static_routes и создаются динамические переменные.. for i in ${static_routes}; do eval route_args=\$route_${i} route add ${route_args} done _________________ Нет ничего невозможного... |
|
Вернуться к началу |
|
|
|