Друзья, подскажите как реализовать такое. Обходился до сегодняшнего дня помощью инструкции case, но параметров становится очень много и скрипт ужасающе растет в объеме. Хочу вынести параметры в отдельный файл конфигурации, а скрипт оставить обработчиком.
case $1 in
1)
status=$(123)
;;
2)
status=$(123)
;;
*)
;;
esac
if $status(какое то условие); then
Что то делаем
fi
Примет скрипта. Как параметр $1 взять из конфига? Конфиг прицепить как знаю, . ./conf в той же директории будет лежать.
Ещё ньюанс. В обработчике будут условия, что если параметр $1 отбросил неприемлемый результат, то надо пойти в конфиг и взять параметр следующий за $1, т.е. $1+1
Объясни, какая связь между заменой $1 из командной строки на $1 из конфига с тем, что у тебя case по нему делается? По-моему, никакой. Видимо ты плохо объяснил что хочешь поменять.
Плохо объяснил.
Сейчас скрипт крутится через case. В нем уже 10 параметром, каждый из них это SQL запрос. Простыня короче знатная. Что хочу:
Пример конфига
В скрипте избавиться от case и вызывать скрипт с параметром названия запроса, ну т.е.
./script.sh first
. Этакая замена case что ли.
Скрипт хочу оставить как обработчик, в конфиге запросы и остальные переменные.
Также в скрипте есть такие сценарии, что если к примеру я запустил скрипт вот так
./script.sh first
, условие в нем заберет содержимое переменной first, если условие не удовлетворяет требованиям, то нужно чекнуть следующий запрос из конфига, т.е. second.
Надеюсь более менее понятно расписал))
# Импорт списка запросов из файла
. query_list
# Имя переменной из значения параметра
query=query_${1}
# Обращение по новому имени
n=${!query}
m=$(${!query})