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

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

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

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

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

  • В чем разница между использованием команды shell (например, foo) напрямую и использованием $ (foo)?
  • Как сделать экспортированные переменные оболочки постоянными?
  • Как отключить трассировки bash?
  • Цитирование фигурных скобок в оболочке
  • Использовать root для создания корневой оболочки для другого пользователя
  • Результаты задания Cron отличаются от выполнения из собственной оболочки
  • В чем разница между echo `date`, echo" date "и echo '' date`?
  • cat <file.txt Кто отвечает за чтение файла?
  • 2 Solutions collect form web for “Почему я должен избегать циклов в оболочках?”

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

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

    Interesting Posts

    Загрузка ядра через NFS

    Изменен синтаксис grep -E regex?

    Возможно ли иметь вредоносное ПО в Linux без выполнения ненадежных приложений?

    Области уведомлений Ubuntu 10.10, многие значки исчезли, как сетевой менеджер

    Запустить VPN-соединение с протоколом PPTP в командной строке

    Как использовать маршрутизацию для использования следующего доступного inetface

    настройка kvm на беспроводном интерфейсе на ноутбуке

    Как удалить файл без имени

    Могу ли я отключить встроенный gpu на моем ноутбуке Optimus, чтобы использовать только графический процессор Nvidia?

    xargs – добавить каждый аргумент с параметром

    Как выделить всю строку журнала в цвете с помощью многопользовательского режима

    Сообщение об ошибке Debian: «Не удалось найти том LVM», но затем успешно загружается

    Как сделать все, что делает «make install», с «install» для предварительно скомпилированного пакета?

    Grub – оба диска загружаются на моем сервере с Debian 7.1 и программным обеспечением Raid1?

    Беспроводная передача, Как создать горячую точку

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