Я хотел знать, совместимы ли скрипты, написанные для dash, ash и sh, на 100%?
Существуют ли какие-либо дополнительные функции для разбивки, изменения или синтаксиса?
Из того, что я слышал, ясень является прямым потомком sh.
shell
shell-script
compatibility
dash
ash
user1115057
источник
источник
man ash
checkbashisms
чтобы проверить, что ваш скрипт POSIX-совместимый.Ответы:
Короткий ответ - нет, они не совместимы на 100%.
Но большинство оболочек довольно близки к базовым, поэтому вы вряд ли столкнетесь с несоответствиями. На самом деле, большинство оболочек отличаются не сильно добавленным синтаксисом, а некоторыми дополнительными функциями, такими как завершение табуляции и тому подобное.
Кроме того,
dash
является своего рода потомкомash
- или портом от BSD к Linux, если быть точным. И все они должны быть потомками или разными реализациямиsh
. На самом деле,sh
на большинстве систем просто символическая ссылка наbash
,dash
или что - то еще. Важным является соответствие POSIX - и когда вы пишете сценарии в соответствии со стандартами, у вас не возникнет проблем.Разница между этими оболочками заключается в оптимизации и производительности. Тогда
bash
они менее функциональны , но являются вполне законными оболочками. Bash является многофункциональным для интерактивной работы, но, например, использует больше памяти.источник
Следует отметить, что в некоторых системах, в частности, в Debian, / bin / ash недоступен:
источник