2010-05-08 2 views
9

Что такое использование '-' в bash? Я знаю, что они могут быть использованы дляЧто значит «-» означает в bash?

  1. cd - # взять вас к старому «рабочему каталогу»
  2. some stream generating command | vim - # как-то ВЬЕТ получает текст.

Мой вопрос в том, что именно есть - в bash? В каких других контекстах я могу его использовать?

С уважением Arun

+4

@Jonas: Bash ** Scripting ** - это имя. – aviraldg

ответ

17

Это зависит от приложения.

cd - 

возвращается в последний каталог, вы были в.

Часто - означает stdin или stdout. Например:

xmllint - 

не проверяет файл XML, но проверяет XML на stdin. Пример:

xmllint - <<EOF 
<root/> 
EOF 

То же самое верно и для cat:

cat - 

читает stdin. И последнее, где образец - обозначает stdout:

wget -O- http://google.com 

получит google.com по HTTP и отправить его на stdout.

К слову: это не имеет ничего общего с вашей оболочкой (например, bash). Это только семантика вызываемого приложения.

1

От tldp:

Это можно сделать, например, с помощью дефиса (-), чтобы указать, что программа должна читать из трубы

Это объясняет, как ваш ВИМ пример получает данные ,

3

- в bash не имеет смысла в качестве автономного аргумента (я бы не сказал, что он вообще не имеет смысла в оболочке - например, он используется в расширении, например, ls [0-9]* содержит список всех файлов, начинающихся с цифра).

Что касается автономного значения параметра, bash не будет абсолютно ничего особенного в нем и передать команду as-is.

Что делает команда с каждой отдельной программой - может быть почти что угодно.

Существует общепринятое соглашение о том, что аргумент - указывает программе, что вход должен считываться из STDIN вместо файла.Опять же, это просто то, сколько программ закодировано и технически не имеет никакого отношения к bash.

0

Здесь нет универсального правила.

Согласно контексте изменения

  1. Это в значительной степени полезно, когда у вас есть что-то делать несколько раз в двух каталогах. См. Здесь # 4: http://www.thegeekstuff.com/2008/10/6-awesome-linux-cd-command-hacks-productivity-tip3-for-geeks/

  2. Во многих местах это означает STDIN.

Смежные вопросы