2016-12-26 3 views
0

3 가지 주요 단계로 몇 가지 작업을 수행하는 스크립트가 있습니다. 모든 단계에는 몇 가지 추가 인수가 필요할 수 있지만 선택한 단계에 따라 달라질 수 있습니다. 사용자는 일부 단계 만 수행하도록 선택할 수 있지만 일부 조합은 지원되지 않습니다. 나는 그들이 스크립트를 호출 할 수 있지만 간결한 방식으로 할 수있는 모든 가능한 방법에 대해 사용자에게 알려 드리고자합니다.복잡한 스크립트에서 사용법 메모를 지정하는 방법은 무엇입니까?

./script -p [-d <arg>] 
./script -u -d <arg> 
./script -r -e <arg> -f <arg> -g|(-h <arg> -i <arg>) 
./script -pu [-d <arg>] 
./script -ur -d <arg> -e <arg> -f <arg> -g|(-h <arg> -i <arg>) 
./script -pur [-d <arg>] -e <arg> -f <arg> -g|(-h <arg> -i <arg>) 

을하지만이 다소 장황 : 내 마음에 오는

유일한 올바른 (즉, 올바른 표기법을 사용하여 모든 가능성을 지정하는) 방법은 모두 별도의 라인에 명시 적으로 변형 주장한다. 더 나쁜 것은 스크립트에 다른 단계를 추가하면 해당 단계의 모든 조합을 나열해야합니다.

내가 접근 할 수있는 다른 방법은 모든 인수를 선택적으로 나열하는 것입니다 (모든 단계에 대해 인수가 필수적이 아니므로). 물론 이것은 부정확 할 것입니다 (단 하나의 인수도 항상 필수는 아니지만 어떤 경우에도 필요하지 않습니다). 제공 일부 인수있을 필요합니다.? 솔직히

./script [-p] [-u] [-r] [-d <arg>] [-e <arg>] [-f <arg>] [-g|(-h <arg> -i <arg>)] 

, 내가 더 나쁜 어느 모르겠어요 어떻게 당신이 날은 가능하면 일반을 제안 해주십시오, 내 사용 노트를 작성하는 것이 좋습니다 여러 옵션을 사용하는 많은 스크립트에서 이러한 종류의 문제가 발생합니다.

답변

2

나는 그 긴 사용 라인을 결코 좋아하지 않는다. 당신은 그들이 필요하다고 주장 할 수 있지만 그들은 인간 소비를위한 것이 아닙니다.

 
SYNOPSIS 
    pacman <operation> [options] [targets] 

OPERATIONS 
    -D, --database 
    Operate on the package database. 

    -Q, --query 
    Query the package database. 

OPTIONS 
    -b, --dbpath <path> 
    Specify an alternative database location (a typical default is 
    /var/lib/pacman). 

    -r, --root <path> 
    Specify an alternative installation root (default is /). 

EXAMPLES 
    pacman -Ss ne.hack 
    Search for regexp "ne.hack" in package database. 

    pacman -S gpm 
    Download and install gpm including dependencies. 

아니면 다른 사용 형태를 명확하게하려는 경우, 당신은 로 coreutils처럼 작업을 수행 할 수 있습니다 :

 
SYNOPSIS 
    ln [OPTION]... [-T] TARGET LINK_NAME (1st form) 
    ln [OPTION]... TARGET     (2nd form) 
    ln [OPTION]... TARGET... DIRECTORY  (3rd form) 
    ln [OPTION]... -t DIRECTORY TARGET... (4th form) 

SYNOPSIS 
    mv [OPTION]... [-T] SOURCE DEST 
    mv [OPTION]... SOURCE... DIRECTORY 
    mv [OPTION]... -t DIRECTORY SOURCE... 

SYNOPSIS 
    cp [OPTION]... [-T] SOURCE DEST 
    cp [OPTION]... SOURCE... DIRECTORY 
    cp [OPTION]... -t DIRECTORY SOURCE... 
+0

당신이 pacman'의 접근 방식 '에 정교한 수 나는 pacman documentation의 스타일을 좋아한다 ? 나는이 도구에 대해 알지 못하고 있으며, 그 문서의 배경이 무엇인지에 대해서는 분명하지 않다. 또한 누군가 ** 내 댓글 삭제를 중단합니다 **. – NPS