Argumentos de script geralmente vêm depois das opções. Dê uma olhada em outros comandos, como cp
ou ls
, e você verá que esse é o caso.
Então, para lidar com:
dash_script.sh -x -z -o OPTION FILE
você pode usar getopts
como mostrado abaixo:
while getopts xzo: option
do
case "$option" in
x) echo "x";;
z) echo "z";;
o) echo "o=$OPTARG";;
esac
done
shift $(($OPTIND-1))
FILE="$1"
Depois de processar as opções, getopts
define $OPTIND
para o índice do primeiro argumento não-opcional que, neste caso, é FILE
.