Como o mbiber disse, sourceoutro arquivo. Por exemplo, seu arquivo de configuração (por exemplo some.config) seria:
var1=val1
var2=val2
E seu script pode ter a seguinte aparência:
#! /bin/bash
# Optionally, set default values
# var1="default value for var1"
# var1="default value for var2"
. /path/to/some.config
echo "$var1" "$var2"
Os muitos arquivos /etc/defaultgeralmente servem como arquivos de configuração para outros scripts de shell de maneira semelhante. Um exemplo muito comum das postagens aqui é /etc/default/grub. Este arquivo é usado para definir opções de configuração para o GRUB, pois grub-mkconfigé um script de shell que o origina:
sysconfdir="/etc"
#…
if test -f ${sysconfdir}/default/grub ; then
. ${sysconfdir}/default/grub
fi
Se você realmente deve processar a configuração do formulário:
var1 some value 1
var2 some value 2
Então você pode fazer algo como:
while read var value
do
export "$var"="$value"
done < /path/to/some.config
(Você também pode fazer algo assim eval "$var=$value", mas isso é mais arriscado do que obter um script. Você pode inadvertidamente quebrá-lo mais facilmente do que um arquivo de origem.)