Можно ли передать аргументы командной строки в функцию из скрипта bourne, чтобы позволить getopts их обрабатывать.
Остальная часть моего скрипта красиво упакована в функции, но похоже, что мне придется перенести обработку аргументов в основную логику.
Вот как это написано сейчас, но это не работает:
processArgs()
{
while getopts j:f: arg
do
echo "${arg} -- ${OPTARG}"
case "${arg}" in
j) if [ -z "${filename}" ]; then
job_number=$OPTARG
else
echo "Filename ${filename} already set."
echo "Job number ${OPTARG} will be ignored.
fi;;
f) if [ -z "${job_number}" ]; then
filename=$OPTARG
else
echo "Job number ${job_number} already set."
echo "Filename ${OPTARG} will be ignored."
fi;;
esac
done
}
doStuff1
processArgs
doStuff2
Возможно ли определить функцию так, чтобы она могла читать аргументы сценариев? Можно ли это сделать другим способом? Мне нравится функциональность getopts, но, похоже, в этом случае мне придется пожертвовать красотой кода, чтобы получить его.