NoneSh - это стандартная оболочка Unix, начиная с версии 7 Unix. POSIX имеет стандартизованное поведение оболочки на основе Bourne Shell, и переносимые сценарии оболочки должны соответствовать стандартизированному синтаксису. Используйте этот тег для вопросов, относящихся к оболочкам в стиле Bourne/POSIX. Если скрипты оболочки содержат ошибки, проверьте их на http://shellcheck.net, прежде чем размещать здесь.

Sh , также известная как Bourne Shell, является стандартной оболочкой Unix, начиная с версии v7 Unix, в стандартном расположении/bin/sh.

С тех пор POSIX имеет стандартизованное поведение оболочки на основе Bourne Shell, и переносимые сценарии оболочки должны соответствовать стандартизированному синтаксису.

Наиболее распространенным преемником Bourne Shell (sh) является bash - Bourne-Again Shell и многие Unix-подобные операционные системы имеют/bin/sh связан с bashисполняемый файл; когдаbash называется как sh, он работает (в основном) в POSIX-совместимом режиме.

Вики-теги bash по переполнению стека имеют большой раздел часто задаваемых вопросов; многие вопросы и ответы там также относятся (много вариантов) sh.

Штрих-оболочка (Debian Альмквистой оболочка) также используются в качестве небольшой и быстрого POSIX-совместимой оболочки для запуска сценариев оболочки; В системах Debian и Ubuntu есть/bin/sh связан с dash исполняемый файл.

инструменты

  • checkbashisms (из devscripts package) - полезный инструмент для обеспечения того, чтобы сценарий оболочки был POSIX-совместимым и не использовал функции, не указанные в POSIX.

  • ShellCheck - это веб-приложение, которое анализирует сценарии оболочки и проверяет распространенные ошибки (как синтаксические, так и семантические), а также соответствие стандарту POSIX, например, выделяет переменные без кавычек и Bashisms (еслиshиспользуется в шебанге). Его также можно установить как автономный инструмент командной строки; см. репозиторий в GitHub для получения дополнительной информации.