Bash - командный интерпретатор GNU Bourne


ОБРАБОТКА ПРОСТОЙ КОМАНДЫ


При обработке простой команды командный интерпретатор делает, слева направо, следующие подстановки, присваивания и перенаправления.

  • Слова, помеченные синтаксическим анализатором как присваивания переменным (те, что идут перед именем команды) и перенаправления, сохраняются для дальнейшей обработки.
  • В остальных словах выполняются подстановки и замены. Если после этого остались какие-то слова, первое из них считается именем команды, а остальные - ее аргументами.
  • Перенаправления выполняются так, как описано ранее в разделе "".
  • В тексте после = в каждом присваивании переменной перед присваиванием выполняется замена тильды, подстановка значений параметров, подстановка результатов выполнения команд и вычисление арифметических выражений, а также удаление кавычек.
  • Если в результате имени команды нет, присваивания переменным влияют на среду текущего командного интерпретатора. В противном случае, переменные добавляются в среду выполняемой команды и не влияют на среду текущего командного интерпретатора. Если происходит попытка присвоить значение переменной с атрибутом только для чтения, выдается сообщение об ошибке и команда завершается с ненулевым статусом выхода.

    Если в результате имени команды нет, перенаправления выполняются, но не влияют на среду текущего командного интерпретатора. При ошибке перенаправления команда завершается с ненулевым статусом выхода.

    Если после подстановок имя команды осталось, выполнение продолжается так, как описано ниже. В противном случае, выполнение команды завершается. При этом если выполнялись подстановки результатов выполнения команд, статус выхода будет равен статусу последней команды, результаты которой были подставлены. Если подстановок результатов выполнения команд не было, команда завершается со статусом выхода ноль.



    Содержание раздела