Возьмем вопрос: если у вас есть
/bin/shссылка на bash, то bash не будет вести себя так же, когда/bin/shвызывается так же, как при вызове as/bin/bash. Когда он вызывается какsh, он ограничивается в основном POSIX-совместимостью и ограниченным набором расширений.
Означает ли это, что всякий раз, когда я сталкиваюсь со сценарием оболочки в Linux с символом sh: « #!/bin/shдаже если в этом дистрибутиве bin/shесть символическая ссылка на другую оболочку, такую как dash или bash, она должна быть на 100% совместима с оболочкой bourne, поскольку ограничить себя ограниченным набором расширений? Чтобы я мог выполнить их во FreeBSD? Есть ли исключения из этого? Или я должен с уверенностью предположить, что это будет работать?
Так что, если в дистрибутиве bin/shесть символьная ссылка bin/bashи сценарий использования #!/bin/shи сценарий содержат bashism, он не будет работать, так как bash будет находиться в режиме sh?