Jak interpretować składnię polecenia „bash” użycia polecenia bash?

11

Jak dokładnie musisz interpretować dane wyjściowe polecenia „use”, na przykład w bash.

Na przykład w moim OS X, cpdaje mi

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
  • Co oznaczają zagnieżdżone opcje, takie jak -H w -R?
  • Czy wielkie i małe litery mają jakieś znaczenie?
  • Kiedy argument jest opcjonalny, wymagany?

Muszę wdrożyć wiersz polecenia telnet przeciwko mojemu programowi i chciałbym to wyjaśnić.

raoulsson
źródło

Odpowiedzi:

15

Dla każdego, kto próbuje zrozumieć, co oznacza wynik użycia, najlepszym sposobem jest man man.

na poważnie :-) Poświęć trochę czasu na poznanie konwencji, to naprawdę pomaga.

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.
   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.
Justin
źródło
+1 usunięcie mojego postu jako zbędnego.
Warner
man manna CentOS 6.6 nie ma tej sekcji; podobnie jak wersja man manna Mac OS X 10.7.4. Gdzie mogę to znaleźć?
Wildcard,
Znalazłem, jest man man-pagesw CentOS i man manpagesna Mac OS X (który używa poleceń BSD).
Wildcard,
Ta odpowiedź, podobnie jak man manpolecenie, nie wydaje się obejmować przypadków, w których dane wejściowe muszą być jednym z elementów wyliczenia. Na przykład<env> - must be one of [dev | test | uat | perf | prod]
Addison
2

Po pierwsze, chociaż istnieją ogólne konwencje, nie są one jednolicie stosowane.

  • W tym przypadku, to mówi, że jeśli używasz -R(ze wskazaniem „rekursji”), a następnie można użyć albo -H, -Lalbo -P. Jeśli nie używasz -R, te opcje nie są istotne.
  • Tak, sprawa jest prawie zawsze ważna. Więc zwykle -hi -Hrób zupełnie inne rzeczy.
  • Nawiasy kwadratowe zazwyczaj wskazują, że opcja lub argument jest „opcjonalny”. (Rzeczy z łącznikami przed nimi to „opcje”, słowa bez łączników są argumentami.) Bez nawiasów zazwyczaj wymagana jest opcja lub argument. W twoim przykładzie wymagane są zarówno „plik_źródłowy”, jak i „katalog_docelowy”. „...” wskazuje, że poprzedni argument można powtórzyć.

Inne punkty warte odnotowania:

  • Pionowy pasek wskazuje „LUB”. Tak [-fi | -n]wskazuje, można użyć jednej -fi / lub -iale nie w połączeniu z -n.
  • Pogrupowane opcje w nawiasach oznaczają, że możesz użyć dowolnej z nich. Tak [-apvX]wskazuje, można użyć dowolnej kombinacji tych opcji. Nie trzeba ich nawet rozbijać. Więc -a -v -pbyłoby ważne połączenie.
Insyte
źródło