문제

같은 스크립트에서 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.

건배,

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top