Bash GetOpts 기능은 명령 줄 옵션에 파괴적입니까?
문제
같은 스크립트에서 Bash "GetOpts"기능을 두 번 사용할 수 있습니까?
특정 옵션의 값에 따라 다른 것을 의미하는 일련의 옵션이 있습니다. GetOpts가 해당 특정 옵션을 먼저 평가할 것이라고 보장 할 수 없으므로 특정 옵션 만 사용하여 GetOpts를 한 번 실행하고 다른 옵션을 사용하여 두 번째로 실행하고 싶습니다.
해결책
예, 나중에 Optind를 재설정하십시오.
#!/bin/bash
set -- -1
while getopts 1 opt; do
case "${opt}" in
1) echo "Worked!";;
*) exit 1;
esac
done
OPTIND=1
set -- -2
while getopts 2 opt; do
case "${opt}" in
2) echo "Worked!";;
*) exit 1;
esac
done
다른 팁
GetOpts는 이전 GetOpt 독립형 실행 파일과 달리 원래 인수를 수정하지 않습니다. 원래 입력을 수정하지 않고 Bash 내장 게인트를 계속해서 사용할 수 있습니다.
자세한 내용은 Bash Man 페이지를 참조하십시오.
HTH.
건배,
롭
제휴하지 않습니다 StackOverflow