«Какие сильные стороны сценариев оболочки делают их незаменимым инструментом по сравнению с Python?»
Оболочка не обязательна. Как вы думаете, почему их так много? bash, tcsh, csh, sh и т. д. и т. д.,
Python - это оболочка. Не тот, который вы бы использовали для выполнения всех команд, но для написания сценариев он идеален.
Python - более или менее стандартная часть всех дистрибутивов Linux.
Более традиционные снаряды делают слишком много вещей.
У них есть удобный пользовательский интерфейс для выполнения команд. Это включает однострочные команды, в которых оболочка ищет ваш PATH, разветвляет и запускает запрошенную программу. Она также включает в себя трубопроводы, последовательности и параллельных программ ( с использованием ;
, |
а &
), а также некоторые перенаправления ( с помощью >
и <
).
У них есть жалкие маленькие возможности, подобные языку программирования, для запуска скриптов. Этот язык довольно сложен в использовании и крайне неэффективен. Большинство операторов этого языка требуют разветвления одного или нескольких дополнительных процессов, тратя впустую время и память.
Запуск программ из оболочки, перенаправление stderr в файл журнала и тому подобное - это хорошо. Сделайте это в оболочке.
Почти все остальное можно сделать более эффективно и понятно с помощью скрипта Python.
Вам нужно и то, и другое . Однако никогда не следует писать сценарий с операторами if или циклами на традиционном языке оболочки.