if [ $? != 0 ] ; thenecho"Terminating..." >&2 ; exit 1 ; fi
# Note the quotes around `$TEMP': they are essential! #set 会重新排列参数的顺序,也就是改变$1,$2...$n的值,这些值在getopt中重新排列过了 evalset -- "$TEMP"
#经过getopt的处理,下面处理具体选项。
whiletrue ; do case"$1"in -a|--a-long) echo"Option a" ; shift ;; -b|--b-long) echo"Option b, argument \`$2'" ; shift 2 ;; -c|--c-long) # c has an optional argument. As we are in quoted mode, # an empty parameter will be generated if its optional # argument is not found. case"$2"in "") echo"Option c, no argument"; shift 2 ;; *) echo"Option c, argument \`$2'" ; shift 2 ;; esac ;; --) shift ; break ;; *) echo"Internal error!" ; exit 1 ;; esac done echo"Remaining arguments:" for arg do echo'--> '"\`$arg'" ; done