Как я могу узнать, написан ли скрипт в bash
или sh
?
Первая строка скрипта здесь не полезна, поскольку в Linux скрипты bash имеют следующую строку:
#!bin/sh
На самом деле, существует много дистрибутивов, где /bin/sh
есть bash (может быть, /bin/sh
ссылка на /bin/bash
эти дистрибутивы), а не Bourne Shell. Поэтому, если я попытаюсь запустить скрипт, написанный на bash, например, во FreeBSD, результат не будет определен, поскольку /bin/sh
во FreeBSD используется Bourne Shell, а не bash.
Есть ли простой способ определить, является ли скрипт bash или sh?
Есть ли какие-то отличительные черты в синтаксисе?
bash
shell
shell-script
user1115057
источник
источник
Ответы:
На самом деле строки shebang означают что-то, что некоторые дистрибутивы, такие как Debian, не используют
bash
для,/bin/sh
ноdash
.Самое простое решение , чтобы определить , если сценарий оболочки Баш использовать
checkbashism
- смman checkbashisms
для деталей.checkbashisms
должен быть упакован разными дистрибутивами, для Debian он находится вdevscripts
пакете - Fedora вdevscripts-minimal
(он был вrpmdevtools
) и OpenSuSe вrpmlint-mini
источник