I've found this example script for using getopt command in shell.
#!/bin/bash
args=$(getopt ab $*)
set -- $args
for i;
do
  case "$i" in
    -a)shift; echo "it was a";;
    -b)shift; echo "it was b";;
  esac;
done
It works well, but I don't understand where is variable $i assigned. How it knows that it must iterate through $arg. Can you explain this?
 
     
    