Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программирование > Bash

Bash - командная оболочка

2004 г
Брайан Фокс (Brian Fox), Free Software Foundation,
Чет Реми (Chet Ramey), Case Western Reserve University
перевод В. Кравчук

содержание

ОГРАНИЧЕННЫЙ КОМАНДНЫЙ ИНТЕРПРЕТАТОР

Если bash запущен по имени rbash или с опцией -r при вызове, командный интерпретатор становится ограниченным. Ограниченный командный интерпретатор используется для создания более управляемой стреды по сравнению с обычным интерпретатором. Он ведет себя аналогично bash, но следующие действия не разрешены или не выполняются:

  • изменение текущего каталога с помощью cd
  • установка или сброс значений переменных SHELL, PATH, ENV или BASH_ENV
  • указание / в именах команд
  • указание имени файла, содержащего /, в качестве аргумента для встроенной команды .
  • импортирование определений функций из среды командного интерпретатора при запуске
  • разбор значения переменной SHELLOPTS из среды командного интерпретатора при запуске
  • перенаправление вывода с помощью операторов >, >|, <>, >&, &> и >>
  • использование встроенной команды exec для замены командного интерпретатора другой командой
  • добавление или удаление встроенных команд с помощью опций -f и -d встроенной команды enable
  • указание опции -p для встроенной команды command
  • отключение режима ограниченного командного интерпретатора с помощью опций set +r или set +o restricted.

Эти ограничения применяются после чтения файлов начального запуска.

При выполнении команды, которая оказалась сценарием командного интерпретатора (см. раздел "ВЫПОЛНЕНИЕ КОМАНД" ранее), rbash отключает любые ограничения в командном интерпретаторе, порожденном для выполнения сценария.

ССЫЛКИ

Bash Features, Brian Fox and Chet Ramey
The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
Utilities, IEEE Portable Operating System Interface (POSIX) Part 2: Shell
и sh(1), ksh(1), csh(1), vi(1)

ФАЙЛЫ

/bin/bash
Выполняемый файл bash

/etc/profile
Общесистемный файл инициализации, выполняется начальными командными интерпретаторами

~/.bash_profile
Личный файл инициализации, выполняется начальными командными интерпретаторами

~/.bashrc
Отдельный файл начального запуска для интерактивных командных интерпретаторов

~/.bash_logout
Отдельный файл очистки для начального командного интерпретатора, выполняемый при завершении его работы

~/.inputrc
Отдельный файл инициализации библиотеки readline

АВТОРЫ

Брайан Фокс (Brian Fox), Free Software Foundation
bfox@gnu.ai.MIT.Edu

Чет Реми (Chet Ramey), Case Western Reserve University
chet@ins.CWRU.Edu

ИНФОРМАЦИЯ ОБ ОШИБКАХ

Если вы обнаружили ошибку в bash, сообщите о ней. Но сначала убедитесь, что это действительно ошибка, и что она проявляется в последней имеющейся у вас версии bash.

После того, как определено, что ошибка действительно существует, используйте команду bashbug для посылки сообщения об ошибке. Если вы знаете, как ошибку исправить, пришлите и исправление! Предложения и "философские" сообщения об ошибках можете отправлять по электронной почте по адресу bug-bash@gnu.org или в дискуссионную группу Usenet gnu.bash.bug.

ВСЕ сообщения об ошибках должны включать:

  • номер версии bash
  • информацию об аппаратной платформе и операционной системе
  • компилятор, использовавшийся для компиляции
  • описание ошибочного поведения
  • короткий сценарий или "рецепт", позволяющий воспроизвести проблему

Команда bashbug вставляет первые три компонента в предлагаемый шаблон сообщения об ошибке автоматически.

Комментарии и сообщения об ошибках на этой странице справочного руководства отправляйте по адресу chet@ins.CWRU.Edu.

Комментарии и сообщения об ошибках в переводе этой страницы справочного руководства на русский язык отправляйте по адресу valera@openxs.kiev.ua.

ОШИБКИ

Слишком большой и слишком медленный.

Есть ряд небольших отличий между bash и традационными версиями sh, в основном, связанные с поддержкой спецификации POSIX.

Псевдонимы иногда могут сбивать с толку.

Встроенные команды и функции интерпретатора нельзя остановить/перезапустить.

Составные команды и последовательности команд вида 'a ; b ; c' обрабатываются некорректно при попытке приостановки процесса. Когда процесс останавливается, командный интерпретатор немедленно выполняет следующую команду в последовательности. Для выполнения последовательности команд в порожденном командном интерпретаторе, что позволяет останавливать их, как единое целое, достаточно взять ее в скобки.

Команды в операторе подстановки результатов выполнения команды $(...) не разбираются, пока не будет выполнена попытка подстановки. Это откладывает выдачу сообщения об ошибке на определенное время при вводе команды.

Нельзя (пока) экспортировать массивы.

ПРИМЕЧАНИЯ

Исходный код bash доступен в пакете SUNWbashS.

Последнее изменение: 20 января 1999 года

содержаниеназад

Главная > Программирование > Bash