Пауза (с чтением или аналогичным) в xargs

У меня есть сценарий, который выглядит примерно так:

find /path -type f | sed -re 'stuff' | xargs -Ix sh -c '{ echo "information about x" ./exe < x read }' 

Моя цель – предоставить каждому файлу, указанному xargs качестве входных данных для exe . Тем не менее, я не хочу, чтобы вывод exe был предоставлен сразу. Вместо этого я хочу изучить вывод exe для каждого файла, а затем продолжить, как только я закончу изучение этого вывода. Поэтому я read .

Проблема в том, что read здесь не работает. После выполнения скрипта был создан весь вывод. Есть ли предложения о том, как можно решить эту проблему?

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

One Solution collect form web for “Пауза (с чтением или аналогичным) в xargs”

Вы можете перенаправить ввод для read из /dev/tty следующим образом:

 read reply < /dev/tty 

Вы можете эффективно выполнять одни и те же результаты в оболочке без использования xargs и без прямого xargs новой оболочки для обработки каждого файла:

 find /path -type f | sed -re 'stuff' | while IFS= read -rx do echo "information about $x" ./exe < "$x" read reply < /dev/tty done 

Я думаю, вы обнаружите, что этот метод более эффективен (на самом деле это не проблема в этой интерактивной ситуации), более портативный, требует меньшего синтаксиса и его легче читать и поддерживать.

  • используйте find и grep, чтобы найти строки, содержащие некоторую строку и не содержащие другую строку из файлов
  • xargs и <и> в те же файлы
  • 'find -mtime -1 -print | xargs tar 'архивирует все файлы из каталога, игнорируя аргумент -mtime -1
  • xargs не работает в Linux, поскольку работает в Unix
  • Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле
  • Мне нужно "| xargs -n 1 ", чтобы обойти xargs -I побочный эффект?
  • Как я могу найти файлы, а затем использовать xargs для их перемещения?
  • Выполнение одной и той же команды с разными аргументами параллельно
  • Перенаправление sed для завивки, затем в файл
  • Применение функции bash для каждого файла в подпапке рекурсивно
  • Как получить текущий счет строки из xargs?
  • Linux и Unix - лучшая ОС в мире.