Как узнать, написан ли сценарий оболочки в bash или sh

Как я могу узнать, написан ли сценарий в bash или sh ?

Первая строка скрипта здесь не полезна, поскольку в Linux скрипты bash имеют следующую строку: #!bin/sh

  • Скопируйте файлы, исключая x, y, z, вызывая ошибку в сценарии оболочки
  • Начальная последовательность движения - модификация скрипта оболочки
  • Возврат BASH к основной функции
  • Как использовать тройник для перенаправления на grep
  • Эскалация разрешений с помощью сценария фоновой оболочки
  • bash: /home/user/.ssh/authorized_keys: нет такого файла или каталога
  • На самом деле, существует множество дистрибутивов где /bin/sh is bash (возможно, /bin/sh – это ссылка на /bin/bash в этих дистрибутивах), а не Bourne Shell. Поэтому, если я попытаюсь запустить скрипт, написанный в bash, например, FreeBSD, результат не определен, поскольку /bin/sh в FreeBSD является Bourne Shell, а не bash.

    Есть ли простой способ определить, является ли скрипт bash или sh?

    Есть ли какие-то отличительные особенности в синтаксисе?

  • Есть ли команда unix, которая дает минимум / максимум двух чисел?
  • Соответствие регулярному выражению Bash не работает в 4.1
  • Как захватить упорядоченный STDOUT / STDERR и добавить временную метку / префиксы?
  • Почему замена процесса <() не работает с ssh -F
  • Запишите переменную, содержащую большой текст, с \ n в файл с обычными интерпретаторами интерпретаторов. Как ты делаешь это?
  • Как безопасно разрешить scp, но не ssh
  • One Solution collect form web for “Как узнать, написан ли сценарий оболочки в bash или sh”

    На самом деле линии shebang означают что-то, поскольку некоторые дистрибутивы, такие как Debian, не используют bash для /bin/sh но dash .

    Простейшим решением для определения, является ли сценарий оболочки bash, является использование checkbashism – см. man checkbashisms для деталей.

    checkbashisms должен быть упакован разными дистрибутивами, для Debian он находится в пакете devscripts – Fedora в devscripts-minimal (раньше он был в rpmdevtools ) и OpenSuSe в rpmlint-mini

    Linux и Unix - лучшая ОС в мире.