Если оболочка обнаруживает ошибки, например синтаксические, она возвращает ненулевой код завершения. Иначе оболочка возвращает код завершения последней выполненной команды. После ошибок времени выполнения выводится имя команды или функции и причина ошибки. Если номер строки, на которой была обнаружена ошибка, больше 1, в [ ] (квадратных скобках) после имени команды или функции печатается номер этой строки.
При обнаружении ошибок в
специальных встроенных и прочих командах, неинтерактивной оболочкой будет
выдано диагностическое сообщение, согласно следующей таблице:
Ошибка | Специальные встроенные команды | Прочие утилиты |
Синтаксическая ошибка языка оболочки | будут завершены | будут завершены |
Ошибка синтаксиса утилиты (ошибка в опции или операнде) | будут завершены | не будут завершены |
Ошибка перенаправления | будут завершены | не будут завершены |
Ошибка присвоения переменной | будут завершены | не будут завершены |
Ошибка подстановки | будут завершены | будут завершены |
Команда не найдена | неприменимо | могут быть завершены |
Точечный сценарий не найден | будут завершены | неприменимо |
При обнаружении ошибок, для которых указано "будут (могут быть) завершены", оболочка выполнения команды будет (может быть) завершена с ненулевым состоянием, однако сценарий, из которого запущена эта оболочка, не будет завершен.
Во всех перечисленных в таблице случаях интерактивная оболочка запишет в стандартный вывод диагностическое сообщение и продолжит работу.
Дополнительная информация о переадресации приведена в разделе "Перенаправление ввода/вывода в оболочке Korn (POSIX)."