#bash #loops #getopts
#bash #циклы #getopts
Вопрос:
У меня есть простой цикл, который я использую во многих своих скриптах bash, но этот конкретный, похоже, не работает.
#!/bin/bash
function main
{
echo here
while getopts "Ah" cli_opt; do
case ${cli_opt} in
A)
echo "op A"
start_all
return $?
;;
*)
echo invalid option
showHep
exit 1
;;
h)
showHelp
exit 0
;;
?)
invalid option
showHelp
exit 1
;;
:)
option -$OPTARG requires an argument
showHelp
exit 1
;;
esac
done
}
main
exit 0
Независимо от того, как я это называю, он достигает только «здесь».
Комментарии:
1. измените main на main «$@»
Ответ №1:
Исправление, изменение:
main
Для:
main "$@"
"$@"
представляет собой массив, содержащий все аргументы. Вам нужно будет передать этот массив в вашу main
функцию.