Загрузить переменные из файла?

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dlocal
проходил мимо

Загрузить переменные из файла?

Непрочитанное сообщение dlocal » 2009-07-12 17:53:58

Сабж, как?

Есть файлик со строками вида:

val1=1
val2=ON
val3=true

и т.д.

Реально ли их загрузить в шеллскрипт как переменные?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
mike345
сержант
Сообщения: 170
Зарегистрирован: 2007-12-09 15:57:55

Re: Загрузить переменные из файла?

Непрочитанное сообщение mike345 » 2009-07-12 18:11:18

Я гружу значения из файла конфигурации так:

Код: Выделить всё

var1=`cat $conf | grep var1=`; var1=${var1##*=}
Но при этом в файле $conf кавычки использовать нельзя.
И в значение попадает все от знака = до конца строки невзирая на использование ;.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Загрузить переменные из файла?

Непрочитанное сообщение zg » 2009-07-12 19:07:06

dlocal писал(а):Сабж, как?

Код: Выделить всё

zg# ./1.sh
world
zg# cat 1.sh
#!/bin/sh
. 1.txt
echo $hello
zg# cat 1.txt
hello=world
zg#

Гость
проходил мимо

Re: Загрузить переменные из файла?

Непрочитанное сообщение Гость » 2009-07-12 20:37:49

zg, 1.sh, 1.txt, ни одного лишнего перевода строки и комментария. Специально стараешься, чтобы тя было сложнее понять? ;)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Загрузить переменные из файла?

Непрочитанное сообщение zg » 2009-07-12 20:46:02

Гость писал(а):Специально стараешься, чтобы тя было сложнее понять? ;)
гм... а что есть сложности с пониманием трёх строк кода? ну тогда могу ещё ткнуть в ман

Код: Выделить всё

     . file  The commands in the specified file are read and executed by the
             shell.  The return command may be used to return to the . com-
             mand's caller.  If file contains any `/' characters, it is used
             as is.  Otherwise, the shell searches the PATH for the file.  If
             it is not found in the PATH, it is sought in the current working
             directory.
так понятней? :smile:

Гость
проходил мимо

Re: Загрузить переменные из файла?

Непрочитанное сообщение Гость » 2009-07-12 21:43:57

zg писал(а):а что есть сложности с пониманием трёх строк кода? ну тогда могу ещё ткнуть в ман
не, я о source'инге знал и без этой темы. Но, прочитав твой пост, только с третьего раза понял о чем речь. Сначала не заметил где файл и где скрипт, потом не заметил расширения у 1.txt. :cry: "Форматирование оставляет желать лучшего."

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Загрузить переменные из файла?

Непрочитанное сообщение zg » 2009-07-13 4:29:41

Гость писал(а):только с третьего раза понял о чем речь
ну... читать то надо уметь :smile:
Гость писал(а):Сначала не заметил где файл и где скрипт, потом не заметил расширения у 1.txt.
гм... ну так надо просто быть внимательней :smile:
Гость писал(а):"Форматирование оставляет желать лучшего."
а ты бы как оформил? :smile:

Гость
проходил мимо

Re: Загрузить переменные из файла?

Непрочитанное сообщение Гость » 2009-07-14 16:44:58

zg писал(а):а ты бы как оформил? :smile:
наверное разделил бы на несколько кусков или хотя б добавил несколько лишних переносов строки.

Напр.,

foo.sh:

Код: Выделить всё

#! /bin/sh

# load settings from file
. my.conf

# print one of them
echo The value of pi constant is $pi.
my.conf: проверяем

Код: Выделить всё

$ ./foo.sh
The value of pi constant is 3.14.

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Загрузить переменные из файла?

Непрочитанное сообщение paix » 2009-07-22 11:30:47

Борцам за простоту +1 ;)

всем остальным читать Эрика Реймонда (The art of unix programming) ;)
With best wishes, Sergej Kandyla