Как получить функцию getopts при вызове другой функции внутри файла

Я бы назвал параметры для своих функций.

Кажется, я могу использовать GETOPTS только для основной функции, вызванной из командной строки.

Если у меня есть несколько функций внутри одного файла, есть ли способ получить такую ​​же функциональность (именованные параметры) при вызове других функций?

например, следующее не работает:

$ cat getops_example.sh function usage { echo 'here' } function my_test { while getopts ":s:p:" o; do case "${o}" in s) s=${OPTARG} ((s == 45 || s == 90)) || usage ;; p) p=${OPTARG} ;; *) usage ;; esac done } my_test 11 20 echo "s was $s" echo "p was $p" $ $ ./getops_example.sh -s 10 -p 20 s was p was 

Ваша программа не работает, потому что вы передаете параметры своей программе, но внутри программы вы вызываете свою функцию my_test без флажков параметров -s и -p или. В зависимости от того, что вы действительно хотите, используйте либо

 my_test -s 11 -p 20 

или передать аргументы извне и вызвать вашу функцию как

 my_test "$@"