Почему я должен избегать циклов в оболочках?

Следующая ссылка рекомендует против использования циклов в оболочках.

переменные bash для диапазона петель

Почему это? Вот пример цикла, который я только что просмотрел, когда наткнулся на этот ответ:

find /etc/postinstall -name '*.sh' | while read script do echo Running $script ... $script mv $script $script.done done 

  • Операторы перенаправления всегда открывают дескрипторы файлов параллельно?
  • Как выполнить цикл for в bash как строку
  • Как wget Youtube ужасный URL
  • Как установить HOSTNAME в zsh?
  • Работа rm / ls с
  • rsync parallel vs последовательные передачи
  • ksh, выполнить действие при достижении максимального значения цикла
  • Оболочка оболочки `?`
  • 2 Solutions collect form web for “Почему я должен избегать циклов в оболочках?”

    Мне приходят два типа приложений, в которых оболочки оболочки не считаются наилучшим подходом. Первая – обработка данных; многие инструменты (например, sed , awk , perl и т. д.) делают цикл неявно и намного более результативным. Второй вариант (например, в вашем примере кода), где выполняется некоторый код для набора файлов, где find с ключом -exec также может уже выполнять команды (также оболочку) с меньшими проблемами и накладными расходами. Есть, вероятно, больше случаев, но эти два упомянутых уже должны быть просвещенными. Это сказало; петли оболочки не являются по своей сути плохими или что-то вроде этого. Просто воспользуйтесь другими вариантами (например, двумя упомянутыми).

    Shell – ужасный язык программирования, но он очень удобен. Я пишу много сценариев оболочки, и иногда я использую циклы. У меня есть сценарий, который занимает пару часов для выполнения. Он нуждается в переписывании в чем-то другом. Если в сценарии оболочки есть цикл, это индикатор того, что настало время подумать о том, чтобы переписать этот скрипт, прежде чем он станет полностью неуправляемым.

    Linux и Unix - лучшая ОС в мире.