Co oznacza „-” jako argument polecenia?


Odpowiedzi:


18

Jest to wspólna konwencja korzystać -w argument filename do średniego stdinlub stdout; tarprzestrzega tej samej konwencji. Ze strony podręcznika:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
To tylko konwencja; musisz przeczytać stronę podręcznika dla danego polecenia, aby zobaczyć, co to -oznacza. Stdin / stdout jest zdecydowanie najczęstszym znaczeniem, ale są też inne. Na przykład dla niektórych wersji envoznacza „zacznij od pustego środowiska”.
cjm

0

Inną konwencją jest użycie „-” do wskazania końca flag i początku nazw plików. Takie zachowanie jest wbudowane w getopt (3) przynajmniej w RedHat 4. Nie mogę znaleźć strony podręcznika Red Hat, która używa „-” do wskazania końca argumentów, wszyscy wydają się używać „-” do tego. Strona podręcznika awk ma w tym kontekście „-”, więc może tylko stare „dziedziczne” komendy Unix lub Solaris używają „-” jako argumentu - separatora nazw plików.


3
--sygnalizuje koniec opcji, więc wszystko, co nastąpi później, jest operandem. -nie jest opcją, więc i wszystko, co nastąpi później, jest operandem. To jest standardowe zachowanie . Dla wielu komend, takich jak tar, operand -oznacza standardowe wejście lub wyjście . W wielu powłokach set - -ajest to odpowiednik set -- -a, a na niektórych starych powłokach Bourne'a set - -abyła jedyną akceptowaną formą, ale jest to wyjątek z setwbudowanym.
Gilles „SO- przestań być zły”

Programy Solaris działają głównie zgodnie ze standardową konwencją POSIX, --aby oddzielić opcje od argumentów.
alanc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.