3

В настоящее время я использую оболочку 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 ответа3

1

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

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

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

Как говорит profjim , используйте man bash для получения подробной информации о синтаксисе Bash.

1

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

help [builtin_name]

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

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .