オプション値$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

おすすめ記事