Список недостатков:
нельзя хорошо сделать, чтобы скрипт падал при ошибке в какой-то строке.
https://stackoverflow.com/questions/497 ... ash-script
http://mywiki.wooledge.org/BashFAQ/105
Неопределённая переменная всегда пустая
В руководстве написано, "вы должны определить переменную SUPER_COMPLEX_VARIABLE_NAME, если она не определена, то бдует такое-то поведение по умолчанию"
Мы определяем переменную SUPER_COMPLEK_VARIABLE_NAME и потом долго пытаемся понять, что же не так?
Денис Будяк, [26.05.2022 17:02]
В руководстве написано, "вы должны определить переменную SUPER_COMPLEX_VARIABLE_NAME, если она не определена, то бдует такое-то поведение по умолчанию"
Денис Будяк, [26.05.2022 17:03]
Мы определяем переменную SUPER_COMPLEK_VARIABLE_NAME и потом долго пытаемся понять, что же не так?
Если мы упали в том же питоне, то нам напишут стек. В баше нам ничего не напишут.
Отладчик для питона есть, для баша его нет. Т.е. всё просто прекраснее некуда, если речь идёт о скриптах. А скрипты - это между прочем очень дорогая штука. Хоть в них и немного строчек, зато они клеют между собой крупные кирпичи, значит, каждая строчка баш-скрипта может быть очень дорогостоящей.
Изначальный список проблем
Денис Будяк, [25.05.2022 20:41]
1. основаны на текстовых подстановках вместо нормальных вычислений
2. нет модульности (запуск под-оболочки - это костыль)
3. нет разницы между отсутствием переменной и пустой переменной (на самом деле можно настроить, чтобы была, но это не принято)
4. нет типов данных, только строки (может и есть, но кто про них знает?)
5. нет нормальной обработки ошибок, а по умолчанию ошибки вообще игнорируются
6. переменные по умолчанию являются глобальными (оказалось, что есть и локальные, но кто про это знает?)
7. нет нормального отладчика
8. нет компиляции и проверки ошибок до выполнения
9. крайне широко применяется eval
10. гвоздями прибита латиница