Как сказал мбибер, source
еще один файл. Например, ваш конфигурационный файл (скажем some.config
) было бы:
var1=val1var2=val2
И ваш сценарий может выглядеть следующим образом:
#! /bin/bash# Optionally, set default values# var1="default value for var1"# var1="default value for var2". /path/to/some.configecho "$var1" "$var2"
Множество файлов в /etc/default
обычно служат в качестве файлов конфигурации для других сценариев оболочки аналогичным образом. Очень распространенным примером из сообщений здесь является /etc/default/grub
. Этот файл используется для настройки параметров конфигурации для GRUB, поскольку grub-mkconfig
это сценарий оболочки, который является его источником:
sysconfdir="/etc"#…if test -f ${sysconfdir}/default/grub ; then . ${sysconfdir}/default/grubfi
Если вам действительно необходимо обработать конфигурацию формы:
var1 some value 1var2 some value 2
Тогда вы могли бы сделать что-то вроде:
while read var valuedo export "$var"="$value"done < /path/to/some.config
(Вы также могли бы сделать что-то вроде eval "$var=$value"
, но это более рискованно, чем поиск сценария. Вы могли бы непреднамеренно сломать его легче, чем исходный файл.)