go-Cobra PersistentFlags와 Flags의 차이점은 무엇입니까?

Aug 20 2020

Go-Cobra에서 PersistentFlags와 Flags의 차이점이 무엇인지, 언제 각각을 사용해야하는지 알아 내려고합니다. 내가 읽은 이 하지만 난 그것을 이해하지 못했다.

답변

3 torek Aug 20 2020 at 11:48

Cobra를 사용할 때 최상위 명령을 정의합니다.

prog

이 최상위 명령에는 하위 명령이 있습니다. 예를 들어, 우리는 세 개의 하위 명령이 있다고 가정 init, startstop.

prog init [-i]         # initialize, but don't start anything: -i means ignore
prog start [-f] [-q]   # after init, start: -f=fast, -q=quiet 
prog stop [-f]         # stop: -f=force

-i플래그만을위한 것입니다 init우리가 추가 할 수 있도록, -i받는 플래그를 init부속.

-q플래그만을위한 것입니다 start우리가 추가 할 수 있도록, -q받는 플래그 start등 부속 명령 및.

이제 모든 명령에 디버그 모드를 추가하려고합니다 . 각 명령으로 이동하여 --debug플래그를 추가 할 수 있지만 루트 명령에 대한 영구 플래그를 설정할 수도 있습니다 . 이 영구 플래그는 이제 모든 하위 명령 에서 사용할 수 있습니다 .

하위 명령이있는 하위 명령이있는 경우 하위 명령에 영구 플래그를 설정하여 해당 플래그가 모든 하위 명령 등에 나타나도록 할 수 있습니다.