如何正确获取选项值$OPTARG?

如何正确获取选项值$OPTARG?

我想在启动 shcell 时获得一个选项值。我写:

optstring=hcnxl:
V=0
 
while getopts $optstring opt; do
  case $opt in
    h) V=1 ;;
    c) V=2 ;;
    n) V=3 ;;
    x) V=4 ;;
    l) V=$OPTARG ;;
    *) echo -e "wrong synthax" && exit 1 ;;
  esac
done
shift $((OPTIND-1))
echo :: ${OPTARG} : $OPTARG

-l <n>但是当我运行带有选项的脚本时始终为空。

我错了什么?

谢谢

答案1

将最后一行更改为

echo "$V"

你不需要shift任何东西,while getopts已经循环了选项。

相关内容