Czy według was przełącznik -v znaczy --version czy --verbose?

0

Piszę sobie tool'a crlf do podmianki końcówek linii, i chcę dodać do niego opcję --verbose (bo chciałbym czasem dostać więcej info), ale również --version.

I tak się zastanawiam, które z nich powinno mieć skrót -v. Czy może zrobić tak że jeśli odpalę crlf -v to pokazuje wersje, ale jeśli zrobię crlf file.txt -v to wtedy to znaczy verbose.

Przykłady gdzie -v znaczy --version:

  • git -v pokazuje wersje
  • php -v pokazuje wersje
  • docker -v pokazuje wersje (samo docker pokazuje helpa)
  • node -v pokazuje wersje
  • yarn -v pokazuje wersje

Przykłady gdzie -v znaczy --verbose:

  • python -v pokazuje verbose liste modułów
  • chmod -v wypisuje wszystkie pliki (zamiast tylko zmienionych), samo chmod pokazuje helpa razem z wersją
  • rust -v "use verbose output" (według @KamilAdam )
  • ffmpeg -v 3 zwiększa level verbosity

Przykłady że -v nie ma:

  • java -v nie ma
  • dotnet -v nie ma (samo dotnet pokazuje helpa, ale bez wersji)

Znakomita większość programów jednak -v ma jako wersja, ale z drugiej strony gdyby -v znaczyło --verbose, wtedy można by dodac -v/-vv/-vvv który zwiększa poziomy "verbose'ity".

Przeczytaj

Sądziłem, że to nie wymaga wyjaśnienia, ale może powiem, bo niektórzy tutaj nie rozumieją:

  • Oczywiście, że zrobię że --version pokazuje wersje - z tym nie ma dyskusji
  • Oczywiście, że zrobię że --verbose pokazuje więcej informacji, to jest oczywiste
  • Oczywiście że jedna --version/--verbose będzie pod -v a druga pod -V - będą dwie opcje, zarówno długie jak i krótkie - z tym nie ma dyskusji.

Pytanie się tylko pojawia czy powinno być -v/--verbose + -V/--version; czy może powinno być -v/--version + -V/--verbose - o tym jest całe pytanie, i doceniłbym gdyby ludzie odpowiadali tylko na to pytanie, nie na trzy wyżej.

0

Osobiście wolę -d jako --debug i jest to dla mnie o wiele bardziej intuicyjne.

2

Jeśli program ma więcej niż jedną opcję zaczynającą się od tej samej litery, to oczekuję, jako użyszkodnik, że skrócona będzie ta częściej używana. Oczekuję, że --verbose będę używał znacznie częściej od --version, zatem to tego pierwszego bym się spodziewał pod -v.

Nie chciałbym też, żeby znaczenie flag zmieniało się od użytych argumentów, więc i w szczególności, żeby -v znaczyło co innego w crlf -v i w crlf file.txt -v.

2

https://en.wikipedia.org/wiki/Unix2dos

git to też ogarnia automatycznie, po co taki tool

1
Riddle napisał(a):

Przykłady że -v nie ma:

  • java -v nie ma
  • dotnet -v nie ma (samo dotnet pokazuje helpa, ale bez wersji)

Java nie jest tu dobrym przykładem bo łamie unixową konwencję przełaczników. Znając M$ to dotnet pewnie też, ale pewien nie jestem XD

IHMO Zawsze można zrobić wersję na -V jak Rust https://doc.rust-lang.org/rustc/command-line-arguments.html

-V/--version: print a version
This flag will print out rustc's version.

-v/--verbose: use verbose output
This flag, when combined with other flags, makes them produce extra output.

0
KamilAdam napisał(a):

IHMO Zawsze można zrobić wersję na -V jak Rust https://doc.rust-lang.org/rustc/command-line-arguments.html

To w jaki sposób to obejść, to sobie z tym poradzę sam.

Pytanie dotyczy tego co powinno robić -v - pokazywać wersję, czy zmieniać output na bardziej verbose.

1
Riddle napisał(a):
KamilAdam napisał(a):

IHMO Zawsze można zrobić wersję na -V jak Rust https://doc.rust-lang.org/rustc/command-line-arguments.html

To w jaki sposób to obejść, to sobie z tym poradzę sam.

Pytanie dotyczy tego co powinno robić -v - pokazywać wersję, czy zmieniać output na bardziej verbose.

Rust jest śliczny :P Wszystko robiłbym jak w Ruscie :D

0

ja oczekuję wersji, ale zauważyłem, że niektóre programy traktują to jak verbose. Ale wtedy --version zwykle to wersja.

0

oczekuje verbose, ale z przyzwyczajenia ze jest roznie juz zawsze wpisuje pelna wersje

1

Niektóre narzędzia jak curl, wget czy nmap rozdzielają sobie wartość parametru na -v jako --verbose oraz -V jako --version – i tego systemu raczej bym się trzymał.

0

Patrzę sobie na jakieś dokumentację GNU i nikt nie zauwazył problemu kolizji znaczenia -v

1

Wg mnie obojętne, ja zawsze najpierw wpisuję -h i to jest dla mnie podstawa by każdy argument był porządnie opisany, a później ewentualnie myślę co dalej.

0

Jeżeli narzędzie ma podkomendny, to zakładam że wersja jest podkomendną. Jak nie ma, to -v traktuję jako flagę dla wersji, ale często jest to też poziom logowania.

Z ciekawostek, w awk -v służy do definiowania zmiennych.

Najważniejsze by był sposób wyświetlenia pomocy i znanych flag. Reszta nie ma dla mnie znaczenia.

1

I tak się zastanawiam, które z nich powinno mieć skrót -v

żadne, nie musisz dodawać skrótów, szczególnie że tutaj dwa mogą się mieszać.

linuksiarze mają tendencje do nawalenia do wszystkiego tych swoich jednoliterkowych parametrów (np. tar -xvf) i później nie idzie się odnaleźć w tym co robi dany shit bez docsów, bo przecież nie można napisać całej nazwy :P

Oczywiście że jedna --version/--verbose będzie pod -v a druga pod -V - będą dwie opcje, zarówno długie jak i krótkie - z tym nie ma dyskusji.

Imo jeżeli wielkość literek ma znaczenie, to jest to mehh design.

Robisz review z telefonu a tu "tool.exe -I" mające inne zachowanie od "tool.exe -i"

1 użytkowników online, w tym zalogowanych: 0, gości: 1