다음 프로그램의 bash 스크립트를 작성할 때 선택적 인수 / 플래그를 포함시키는 방법이 혼란 스러워요.
이 프로그램에는 두 가지 인수가 필요합니다.
run_program --flag1 <value> --flag2 <value>
그러나 몇 가지 선택적 플래그가 있습니다.
run_program --flag1 <value> --flag2 <value> --optflag1 <value> --optflag2 <value> --optflag3 <value> --optflag4 <value> --optflag5 <value>
사용자 인수를 취하도록 bash 스크립트를 실행하고 싶습니다. 사용자가 두 개의 인수 만 순서대로 입력하면 다음과 같습니다.
#!/bin/sh
run_program --flag1 $1 --flag2 $2
그러나 선택적 인수가 포함되어 있으면 어떻게됩니까? 나는 그것이 될 것이라고 생각합니다
if [ --optflag1 "$3" ]; then
run_program --flag1 $1 --flag2 $2 --optflag1 $3
fi
그러나 $ 4가 주어 지지만 $ 3가 아니라면?
getopts
각 인수 조합을 지정해야합니까? 3 & 4, 3 & 5, 3 & 4 & 5 등?
getopts
. :하자 내가 모든 인수를 사용하여 스크립트를 실행하는 사용자를 강제로 말 run_program.sh VAL VAL FALSE FALSE FALSE FALSE FALSE
과 같은 프로그램을 실행합니다 program --flag1 VAL --flag2 VAL
. 실행 run_program.sh VAL VAL FALSE 10 FALSE FALSE FALSE
하면 프로그램이 다음과 같이 실행됩니다 program --flag1 VAL --flag2 VAL --optflag2 10
. 어떻게 그런 행동을 할 수 getopts
있습니까?
getopts
당신이 원하는 것입니다. 그렇지 않으면 switch 문과 함께 루프를 사용하여 옵션 여부에 관계없이 각 플래그를 감지 할 수 있습니다.