use getopt
para ativar as opções longas e curtas, bem como a concatenação da opção -rdn
parsed_options=$( getopt -o r:d:h --long rotate:,device:,help --name "$(basename -- "$0")" -- "$@" )
# option name followed by a single colon indicates the option takes
# a required argument
if [ $! -ne 0 ]; then
echo "Exiting" >&2
exit 1
fi
eval set -- "$parsed_options"
disps=()
while :; do
case "$1" in
-r|--rotate)
rotate "$2"
shift 2
;;
-d|--device)
disps+=("$2") # append the arg to the disps array
shift 2
;;
-h|--help) usage; exit ;;
--) shift; break ;;
*) echo "Internal error" >&2; exit 1 ;;
esac
done
if (( ${#disps[@]} == 0 )); then
echo "no devices to calibrate"
else
calibrate "${disps[@]}"
fi
Uma opção só pode receber zero ou um argumento. Para especificar muitos dispositivos, use a opção -d arg
muitas vezes.