bash - это этакая реализация sh (их много разных, например dash, zsh. csh). Плоха тем, что слишком много в ней такого, чего нету в POSIX sh и слишком распространена, поэтому множество скриптов, написанных на bash не работают на стандартном sh (но при этом работают на эмуляции sh при помощи bash).
отчасти это из-за того, что в большинстве линуксов (до последнего времени) когда набирали sh - запускался bash.
сейчас debian, а вслед за ней и убунта переходят на dash.
> сейчас debian, а вслед за ней и убунта переходят на dash.
У Дебиана, похоже, девиз: «Мы пойдем другим путем». Нет, чтобы исправить режим совместимости с POSIX в баше, так они обязательно свой велосипед притянут.
bash реализует все, что должно быть в sh, но не все что есть в bash - есть в других реализациях sh.
Если у тебя /bin/sh указывает на /bin/bash, то не факт, что твои скрипты, у которых написано #!/bin/sh заработают на других системах, поэтому лучше честно писать #!/bin/bash, если не уверен.
Это относится не только к bash, но и к другим *sh.
> какбэ дело не только в совместимости, таже в качестве причин перехода утверждалось что dash быстрее и имеет меньше зависимостей.
Я знаю это, но по-моему, это еще более идиотская мотивация. Bash не тот компонент, скорость которого (в разумных пределах) решает, да и опять-таки умнее было бы устранить узкие места баша, а не заменять его костылем.
ну а зачем ты мне это сейчас рассказываешь и где ты был четыре (если не больше) года назад, когда решение о dash принимали?
и кстати, как ты хочешь исправить большое количество библиотек, от которых баш зависит?
>Я? На Федоре, там таких свистоплясок нет. Но поставил себе убунту и тут на тебе.
все твои несовместимые скрипты вдруг отвалились и ты обиделся? так если бы в баше исправили режим совместимости, то они бы тоже отвалились.
Постепенно.
постепенно убрать зависимости? каким же интересно образом? перенося код из библиотек в баш?