옵션 값 $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

관련 정보