CLI를 설계할 때 옵션이나 하위 명령 사용에 대한 기본 설정/경험 법칙이 있습니까? [폐쇄]

CLI를 설계할 때 옵션이나 하위 명령 사용에 대한 기본 설정/경험 법칙이 있습니까? [폐쇄]

예를 들어, 패키지를 설치하려면 pacman다음을 사용합니다. 누군가가 입력하는
pacman -S <package>
동안 : 이 옵션을 사용하는 동안 하위 명령을 사용합니다 .dnf
dnf install <package>
pacman-Sdnfinstall

다른 예로는 nmcliand tar, with nmcli connection up <connection>(하위 명령 사용) 및 tar -xzvf <file>(옵션 사용)이 있습니다.

각각의 장단점은 무엇인가요, 아니면 그냥 개인적인 취향인가요?

답변1

보다 기술적인 용어는 "하위 명령"입니다. 각각 고유한 옵션 세트가 있는 많은 하위 명령을 포함하는 명령으로 명령줄 인터페이스를 설계하는 것이 일반적입니다. 때로는 하위 명령에 자체 하위 명령이 있는 경우도 있습니다. git은 다음과 같은 예입니다.

git remote add -f -t "$BRANCH_NAME" "$REMOTE_NAME" "git://example.com/repo"

CLI를 하위 명령으로 분할하는 이유 중 하나는 CLI가 다양한 관련 작업을 수행할 수 있다는 점을 강조하기 위한 것입니다. 포장, 포장, 포장, 포장용, 포장 표시 등을 dnf할 수 있습니다 . 모두 완전히 다른 작업입니다. 이러한 작업 중 다수에는 옵션을 통해 조정하고 선택할 수 있는 추가 노브가 있습니다.installremoveupgradesearchinfo

하위 명령을 사용하는 또 다른 이유는 하위 명령이 옵션에 대한 네임스페이스를 제공하기 때문입니다. in은 --allin과 dnf list --all완전히 다른 것을 의미합니다 .--alldnf search --all

대규모 CLI를 하위 명령으로 분할하는 또 다른 이유는 문서화입니다. git에 하위 명령이 없다면 어떤 일이 일어날지 상상해 보세요. 전체 Git 매뉴얼은 Git의 각 옵션과 이들 옵션이 서로 어떻게 관련되는지 자세히 설명하는 한 페이지입니다. 또한: 실행 git commit --help- 하위 명령과 관련된 도움말 페이지가 표시됩니다 commit. 또 다른: 설치개요그리고 실행하면 tldr git commit하위 명령별 치트 시트가 표시됩니다 commit.

또 다른 고려 사항은아니요하위 명령으로 활성화된 작동 모드를 결합하려면 하위 명령을 사용하십시오. 단일 명령 호출에 여러 옵션을 지정할 수 있지만 하위 명령만 지정할 수 있습니다.

관련 정보