我正在尝试以一种易于添加未来命令行参数的方式编写脚本。我正在使用 getopts 并且效果很好。但是,我遇到了 case 语句的问题。
args=`getopt lLo:t: $*`
if [ $? -ne 0 ]
then
echo "Usage: Default error message"
fi
while [ "$#" -eq 3 ] || [ "$#" -eq 5 ]
do
if [ "$1" != "-o" ] && [ "$1" != "-t" ]
then
echo "\nInvalid argument sequence."
exit 1
fi
case "$1" in
(-o)
shift
VAR1="$1"
shift
;;
(-t)
shift
VAR2="$1"
shift
;;
(*)
LAST_VAR="$1"
;;
(--) shift; break;;
esac
done
如果我然后回显 $LAST_VAR 它是空的。有任何想法吗?有一个更好的方法吗?