Некоторые причины не использовать сценарии оболочки для больших программ, совершенно не у меня в голове:
- Большинство функций выполняются путем выполнения внешних команд, что происходит медленно. Напротив, языки программирования, такие как Perl, могут выполнять внутренние эквиваленты
mkdir
или grep
.
- Нет простого способа получить доступ к библиотекам C или сделать прямые системные вызовы, что означает, например, что видеоигру будет сложно создать
- . Правильные языки программирования лучше поддерживают сложные структуры данных. Хотя в Bash есть массивы и ассоциативные массивы, я бы не хотел думать о связном списке или дереве.
- Оболочка предназначена для обработки команд, которые выполняются в виде текста. Двоичные данные (то есть переменные, содержащие байты NUL (байты с нулевым значением)) трудно или невозможно обрабатывать. Немного зависит от оболочки,
zsh
имеет некоторую поддержку.Это также связано с тем, что интерфейс для внешних программ в основном основан на тексте, а \ 0
используется в качестве разделителя.
- Также из-за внешних команд разделение между кодом и данными немного затруднено. Обратите внимание на все проблемы, возникающие при цитировании данных в другой оболочке (то есть при запуске
bash -c ...
или ssh -c ...
)
Community
13.04.2017, 15:36
Ссылка