2011-07-02 4 views
4

이 예상되는 경우에만 명령 줄 인수, 적절한 메시지와 다른 출구를 처리하는 GetOptions 유틸리티를 사용하는 방법을 설명하는 많은 펄 튜토리얼이 있습니다. 도움말 표시 : 출력을 GetOptions 유틸리티를 사용하여 Perl에서 '선택적'명령 줄 인수를 처리하는 방법?

  • -h 지퍼 : 내 요구 사항에

    나는

    • -z zip_dir_path는 선택 명령 줄 인수, 등이 다음있다.

  • 은 나를 위해 작동하지 않았다 GetOptions와 함께 몇 가지 조합을 시도했다.
    그래서 내 질문은 : 어떻게 이러한 요구 사항을 처리하기 위해 GetOptions를 사용 하는가?

    편집 : -z 요구 '우편 디렉토리 경로'

    EDIT2 : 내 스크립트가 강제 명령 줄 인수 다음

    • -in input_dir_path : 입력 디렉토리
    • -out output_dir_path :

      : 출력 디렉토리
    • 여기

    내 코드입니다

    my %args; 
    GetOptions(\%args, 
    "in=s", 
    "out=s" 
    ) or die &usage(); 
    
    die "Missing -in!" unless $args{in}; 
    die "Missing -out!" unless $args{out}; 
    

    희망이 EDIT 더 선명도를 추가합니다.

    +3

    보통 당신은'GetOptions'를 호출 한 다음 사용 된 스위치 참조하십시오 끝낼 것을 본다. 어쩌면 당신은 무슨 일이 일어나고 있는지 그리고 문제가 무엇인지 명확히하기위한 몇 가지 시도를 포함해야합니다. –

    +0

    @mu가 너무 짧습니다. 질문 문구를 업데이트했습니다. 의견을 주셔서 감사합니다. – TheCottonSilk

    답변

    9

    A : (colon)은 선택 옵션을 표시 할 수 있습니다 당신이를 지정하고 빈 문자열을 선택하면

    : type [ desttype ] 
         Like "=", but designates the argument as optional. If omitted, an 
         empty string will be assigned to string values options, and the 
         value zero to numeric options. 
    

    을, 당신이 알고있는 사람 사용자가 지정하지 않았습니다.

    +0

    ':'은 명령 줄 스위치의 문자열 값이 선택 사항임을 나타내며 스위치 자체는 선택 사항임을 나타내지는 않습니다. 내가 맞습니까? – TheCottonSilk

    +0

    네, 맞습니다. 내가 수락하지만 –

    +0

    는'@Alan 학개 Alavi'의 대답은, @mu는 GetOptions는 사용자가 제공하는 옵션을 나열하는 데 사용되는 자신의 의견에 너무 short'하고 스크립트가에 따라 추가 인수를 처리 할 수있다 '에 동의 필요한 것. – TheCottonSilk

    2

    이것은 당신이 명령 줄에서 무엇을 얻을 입력 인수에 따라 $zip_output$show_help1 또는 0 값으로 설정해야합니다. 문서에서

    #!/usr/bin/env perl 
    
    use strict; 
    use warnings; 
    
    use Getopt::Long; 
    
    my ($zip, $help, $input_dir, $output_dir); 
    
    GetOptions(
        'z:s' => \$zip, 
        'h'  => \$help, 
        'in=s' => \$input_dir, 
        'out=s' => \$output_dir, 
    ); 
    
    +0

    @ '튜더 콘스탄틴': 내 질문 텍스트를 업데이트했습니다. 답변 감사합니다. – TheCottonSilk

    3

    :

    use strict; 
    use warnings; 
    
    use Getopt::Long; 
    
    my $zip_output; 
    my $show_help; 
    
    GetOptions("z" => \$zip, "h" => \$show_help); 
    
    관련 문제