1、在用getopt接受选项和参数的时候
set -- $(getopt ab:cd $@) while [ -n $1 ] do case $1 in -a);; -b);; esac echo $1 shift done
这个代码根本停不下,根据检查发现在检查变量$1是不是为空的时候,一直是不为空的。在这个判断的时候一定要在变量上加上双引号。
set -- $(getopt ab:cd $@) while [ -n "$1" ] do case $1 in -a);; -b);; esac echo $1 shift done