У меня есть общая библиотека, которую я использую из нескольких сценариев, которая анализирует параметры командной строки, однако я также хочу, чтобы мои отдельные сценарии также могли обрабатывать аргументы ...
например,
common.sh:
function get_options {
echo -e "in getoptions"
echo $OPTIND
while getopts ":ab:" optionName; do
[ ... processing code ... ]
done
}
a.sh
. ./common.sh
function get_local_options {
echo -e "in getoptions"
echo $OPTIND
while getopts ":xy:" optionName; do
[ ... processing code ... ]
done
}
get_local_options $*
OPTIND=1
get_options $*
Проблема в том, что если я вызываю a.sh с помощью:
a.sh -x -y foo -a -b bar
get_options останавливает обработку на «foo», так как останавливается на первом «неопции»
Как-нибудь обойтись без переписывания вещей сам?