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

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

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

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

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

  • Как обеспечить выполнение исполняемого скрипта при двойном щелчке по нему?
  • скрипт bash для ранжирования файлов на основе сортировки столбца
  • Смущает смысл интерактивной и неинтерактивной оболочки при запуске скрипта
  • Интерактивная сессия оболочки с Java
  • рекурсивный 'ls', дающий абсолютные имена файлов
  • Как работает эта двухслойная конструкция
  • Поиск в обратном и прямом направлениях осуществляется с помощью vi-режима в zsh
  • Как сделать косвенную переменную
  • 2 Solutions collect form web for “Почему я должен избегать циклов в оболочках?”

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

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

    Interesting Posts

    bash set -o errexit проблема или способ увеличения переменной?

    предоставление заданий для получения трех узлов, выполняющих параллельные казни

    Как фильтровать адреса IPv4 и IPv6?

    Можно ли копировать данные с одного сеанса экрана на другое?

    Имена индексов всех файлов в текстовом файле

    AWK – изменение имени файла (специальные символы)

    Проблема обновления Ubuntu php

    В чем разница между встроенной командой и тем, что нет?

    извлечение из строки в строку, а затем сохранение в отдельный файл

    Как исключить из «Match Group» в SSHD?

    Как скопировать и вставить текст, который находится в странном окне (на фото здесь)?

    Ошибка загрузки разделяемой библиотеки libSDL-1.2

    Не удалось загрузить модуль ядра 'nvidia.ko'

    Как управлять файлом журнала с помощью grep или awk?

    Где я могу найти документацию по синтаксису сценария оболочки для использования регулярного выражения внутри переменной?

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