Пишу сейчас очередной sh-скрипт с кучей вызовов awk, grep и sed. В связи с чем задумался об альтернативах. Попытался сформировать список черт, которые делают sh до сих пор актуальным инструментом:
- Возможность легко и просто скомпилировать под любой утюг.
 - Отсутствие развесистой библиотеки, которую интерпретатор таскает с собой, а также как следствие — нет слома совместимости между версиями библиотеки.
 - Минимальное время инициализации интерпретатора.
 - Малое потребление памяти.
 - Простой параллелизм через fork.
 - Возможность удобно и просто вызывать внешние команды и пайплайны команд.
 - Возможность прозрачно миксовать внешние команды и собственные функции. (В sh мы делаем 
command1 | command2, и это работает одинаково, независимо от того, являются ли эти команды собственными функциями или внешними командами.) 
Если обобщить, то главным отличием sh от ЯП типа perl, ruby, python и т.п. является композиция программы как совокупности исполняемых модулей, запускаемых как отдельные процессы, в противовес композиции библиотечных модулей, слинкованных в единый процесс.
Главным минусом sh является то, что в нём не развиты средства работы с какими-либо структурами данных, кроме строк. Да и для самих строк средства не развиты.
То есть потециальная альтернатива sh должна обладать всем перечнем указанных черт, но дополнительно иметь развитые средства работы со структурами данных такими как списки, хэш-массивы и т.д.










