Какая часть man-страниц относится к оболочке bash?

В настоящее время я использую оболочку bash, но немного запутался в записях man. Например, запись man для source (man source):

DESCRIPTION
  sh
     The exec command specified by the arguments is  executed  in...

  csh
     exec executes command in place of the current  she...

  ksh
     With the exec built-in, if arg is give...

Есть записи для нескольких оболочек, но не для оболочки bash. Я знаю, что bash обозначает Bourne Again SHell, поэтому это подразумевает, что описание для sh тот, который относится к Bash?

Спасибо

3 ответа

Решение

Эта man-страница выглядит так, как будто она из системы Unix (а не Linux), такой как Solaris.

В Solaris /bin/sh - это оригинальная оболочка Bourne, в которой отсутствует история, завершение или более продвинутая подстановка параметров, которую можно найти в оболочках ksh, POSIX и Bash. Кроме того, подстановка команд может выполняться только с помощью обратных кавычек, а не с помощью $ (command).

(Хотя, если у вас есть /usr/xpg4/bin ранее в вашем PATH, запуск 'sh' даст вам POSIX-совместимую оболочку.)

Как говорит dubiousjim, используйте man bash для деталей синтаксиса Bash.

Если вам нужна помощь по конкретному встроенному bash, обычно

help [builtin_name]

это то, что вы хотите.

Во многих дистрибутивах sh- это ссылка на bash, так что если вы запустите sh, вы получите bash, однако он будет работать в ограниченном, совместимом с sh режиме. Вы не можете полагаться на это без проверки, хотя. Вместо этого sh может быть ссылкой на dash или на собственный двоичный файл.

Для ссылок bash, сделайте man bash, Также посмотрите Справочное руководство Bash и Расширенное руководство по написанию сценариев Bash.

Другие вопросы по тегам