Чувствителен ли регистр optstring в getopt?

#getopt

#getopt

Вопрос:

Будут ли v ниже также проанализированы -V параметры?

 getopt -o v
  

Возможно ли вообще проанализировать параметры команды в верхнем регистре?

Ответ №1:

ответ на ваш вопрос — getopt чувствителен к регистру, обычно не рекомендуется использовать разные регистры в аргументах скрипта — это может создать путаницу

вы можете подумать об использовании в нем ввода с несколькими символами.

Попробуйте и прочитайте о getopt —longoptions.

См. Приведенный ниже пример для того же.

 # Read command line options
ARGUMENT_LIST=(
    "input1"
    "input2"
    "input3"
)



# read arguments
opts=$(getopt 
    --longoptions "$(printf "%s:," "${ARGUMENT_LIST[@]}")" 
    --name "$(basename "$0")" 
    --options "" 
    -- "$@"
)


echo $opts

eval set --$opts

while true; do
    case "$1" in
    --input1)  
        shift
        empId=$1
        ;;
    --input2)  
        shift
        fromDate=$1
        ;;
    --input3)  
        shift
        toDate=$1
        ;;
      --)
        shift
        break
        ;;
    esac
    shift
done
  

и вот как вы можете вызвать скрипт

 myscript.sh --input1 "ABC" --input2 "PQR" --input2 "XYZ"
  

попробуйте это, надеюсь, это было полезно