3a. Автоматически генерировать аргументы командной строки --var
из файла конфигурации.
Попробуйте эту функцию bash ...
function impala-with-conf {
if [[ -z "$1" || ! -r "$1" ]] ; then
echo "1st argument must be a properties file" >&2
return 1
fi
typeset AllVarArgs=''
while IFS='' read -r Line || [[ -n "$Line" ]]; do
KeyValue=$(echo "$Line" | sed -e 's/^[ \t]*//' -e 's/[ \t]*=[ \t]*/=/' -e 's/[ \t]*$//')
AllVarArgs="$AllVarArgs --var $KeyValue"
done < "$1"
shift
impala-shell $AllVarArgs $@
}
(на основе Считывание файла построчно с присвоением значения переменной )
Будет работать с файлами "свойств", такими как
alpha_beta = some-text-without-spaces-or-quotes
epsilon=12
Демо:
cat x.sql
select '${VAR:alpha_beta}' as ab , ${VAR:epsilon} as e
impala-with-conf x.conf -q x.sql
Query: select 'some-text-without-spaces-or-quotes' as ab , 12 as e
+------------------------------------+----+
| ab | e |
+------------------------------------+----+
| some-text-without-spaces-or-quotes | 12 |
+------------------------------------+----+