Страница 1 из 1

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

Добавлено: 2009-07-12 17:53:58
dlocal
Сабж, как?

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

val1=1
val2=ON
val3=true

и т.д.

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

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

Добавлено: 2009-07-12 18:11:18
mike345
Я гружу значения из файла конфигурации так:

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

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

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

Добавлено: 2009-07-12 19:07:06
zg
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, ни одного лишнего перевода строки и комментария. Специально стараешься, чтобы тя было сложнее понять? ;)

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

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

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

     . 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: "Форматирование оставляет желать лучшего."

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

Добавлено: 2009-07-13 4:29:41
zg
Гость писал(а):только с третьего раза понял о чем речь
ну... читать то надо уметь :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.

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

Добавлено: 2009-07-22 11:30:47
paix
Борцам за простоту +1 ;)

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