używam pliku właściwość, która jest współdzielona przez wiele języków, używam pary funkcji:
load_properties() {
local aline= var= value=
for file in config.properties; do
[ -f $file ] || continue
while read aline; do
aline=${aline//\#*/}
[[ -z $aline ]] && continue
read var value <<<$aline
[[ -z $var ]] && continue
eval __property_$var=\"$value\"
# You can remove the next line if you don't need them exported to subshells
export __property_$var
done <$file
done
}
get_prop() {
local var=$1 key=$2
eval $var=\"\$__property_$key\"
}
load_properties
czyta z pliku config.properties
zapełnianie zestawu zmiennych __property_...
dla każdej linii w pliku, get_prop następnie pozwala na ustawienie zmiennej na podstawie załadowanych właściwości. Działa w większości przypadków, które są potrzebne.
Tak, zdaję sobie sprawę, że jest tam eval, co czyni go niebezpiecznym dla użytkownika input, ale działa na to, co potrzebowałem.
Świetnie! Jedno pytanie, ponieważ jestem nowy w skryptach. Chcę funkcji takich jak: GetConfigValue i zajęłoby HereIsAKey jako parametr. Jak umieścić przekazany parametr w wyrażeniu regularnym? –
To jest w porządku: echo "(grep -Po \" (? <=^"" $ 1 ""). * \ "Plik)", ale mam problem z przypisaniem go do zmiennej. Otrzymuję MyParam: polecenie nie znaleziono. –
Nieważne. Rozumiem: REGEXP = "grep -Po \" (? <=^$ {1}). * \ "Plik" –