2010-05-08 14 views
9

Czym dokładnie są zastosowania "-" w bash? Wiem, że można je stosować doco oznacza znak "-" w bash?

  1. cd - #, aby dostać się do starego „obecnego katalogu roboczego”
  2. some stream generating command | vim - # jakoś vim dostaje tekst.

Moje pytanie brzmi dokładnie, co jest - w bashu? W jakich innych kontekstach mogę z niego korzystać?

Pozdrowienia Arun

+4

@ Jonas: Bash ** Skrypty ** to nazwa. – aviraldg

Odpowiedz

17

To zależy od zastosowania.

cd - 

powraca do ostatniego katalogu byłaś w.

Często - oznacza stdin lub stdout. Na przykład:

xmllint - 

nie sprawdza plik XML, ale sprawdza XML na stdin. Próbka:

xmllint - <<EOF 
<root/> 
EOF 

To samo jest prawdą dla cat:

cat - 

czyta z stdin. Ostatnią próbkę gdzie - oznacza stdout:

wget -O- http://google.com 

otrzyma google.com przez HTTP i wysłać go na stdout.

Przy okazji: To nie ma nic wspólnego z twoją powłoką (np. bash). To tylko semantyka wywołanej aplikacji.

1

Od tldp:

Można to zrobić na przykład z użyciem myślnika (-), aby wskazać, że program powinien odczytać z potoku

wyjaśnia to w jaki sposób vim przykład pobiera jego dane .

3

- w bash nie ma znaczenia jako samodzielny argument (nie pojadę tak daleko, aby powiedzieć, że to nie ma znaczenia w skorupkach w ogóle - to na przykład stosowanych w ekspansji, np ls [0-9]* wyświetla wszystkie pliki zaczynające się cyfra).

O ile jest to samodzielna wartość parametru, bash nie zrobi z nią absolutnie nic specjalnego i przekaże polecenie tak jak jest.

To, co polecenie robi z nim, zależy od każdego programu - może być prawie wszystkim.

Istnieje powszechnie stosowana konwencja, którą argument - wskazuje programowi, że dane wejściowe muszą zostać odczytane ze STDIN zamiast z pliku.Ponownie, jest to tylko liczba programów kodowanych i technicznie nie ma nic wspólnego z bash.

Powiązane problemy