используйте команду «читать» для передачи строк в качестве позиционных параметров в сценарий оболочки

Следующий файл работает, но ничего не делает, но это не ошибка ….

while read dates; do ./avg_hrly_all_final.sh ${dates}; done < ./dates_all.csv 

У меня есть список дат в «date_all.csv», которые имеют следующий вид:

 2005 01 2005 02 2005 03 

И сценарий, который я называю «avg_hrly_all_final.sh», работает, передавая ему 2 позиционных параметра, например:

 ./avg_hrly_all_final.sh 2005 01 

СЛЕДОВАТЬ ЗА

 xargs -n2 ./the_script.sh <./dates_to_pass.csv OR while read dates; do ./the_script.sh ${dates}; done <./dates_to_pass.csv 

работайте, просто убедитесь, что даты передаваемого файла имеют одинаковую разновидность «Конец строки», поскольку машина, на которой выполняется команда, ожидает;)

2 Solutions collect form web for “используйте команду «читать» для передачи строк в качестве позиционных параметров в сценарий оболочки”

Это вероятная работа для xargs :

 printf %s\\n '#!/bin/sh' 'printf "<%s>\n" "$$" "$@"' >avg_hourly.sh chmod +x ./avg_hourly.sh xargs -n2 ./avg_hourly.sh <<\IN 2005 01 2005 02 2005 03 IN 

xargs будет разделяться по пробелам по умолчанию и вызывать указанную команду один раз на -n2 возникающие аргументы. Я просто написал небольшой скрипт avg_hourly.sh который печатает свои аргументы по одному в строке, как ограниченный с любого конца avg_hourly.sh < и > следуя его PID в том же формате. Вышеприведенные отпечатки:

 <1115> <2005> <01> <1116> <2005> <02> <1117> <2005> <03> 

… просто чтобы продемонстрировать. Однако вы должны использовать <./dates_all.csv а не мой <<\IN здесь <<\IN -документ в качестве входных данных.

Если у вас есть GNU Parallel, вы можете сделать это:

 parallel --colsep ' ' ./avg_hrly_all_final.sh {1} {2} :::: ./dates_all.csv 

Если первой строкой csv-файла является заголовок, вы можете сделать что-то вроде:

 parallel --header : --colsep ' ' ./avg_hrly_all_final.sh {Year} {Month} :::: ./dates_all.csv 

GNU Parallel – это общий параллелизатор, который позволяет легко запускать задания параллельно на одном компьютере или на нескольких компьютерах, к которым у вас есть доступ ssh.

Если у вас есть 32 разных задания, которые вы хотите запустить на 4-х процессорах, прямой способ распараллеливания – запустить 8 заданий для каждого процессора:

Простое планирование

GNU Parallel вместо этого запускает новый процесс, когда заканчивается – сохранение активных процессоров и, следовательно, экономия времени:

GNU Параллельное планирование

Монтаж

Если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить личную установку, которая не требует доступа root. Это можно сделать за 10 секунд, выполнив следующие действия:

 (wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash 

Другие варианты установки см. На странице http://git.savannah.gnu.org/cgit/parallel.git/tree/README.

Выучить больше

Дополнительные примеры: http://www.gnu.org/software/parallel/man.html

Смотрите видеоролики intro: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Пройдите через учебник: http://www.gnu.org/software/parallel/parallel_tutorial.html

Подпишитесь на список адресов электронной почты, чтобы получить поддержку: https://lists.gnu.org/mailman/listinfo/parallel

  • Проверка скрипта выполняется
  • Функция Bash присваивает значение переданному параметру
  • Экстра% в выходе скрипта awk
  • чтение списка строк из файла, записывающего вывод в утилиту
  • Скрипт для распознавания жестких дисков и запуск Smartctl
  • Как использовать If-Else для выполнения определенных действий, если дни недели - это дни?
  • В чем разница между «и»?
  • используя переменную «файл», полученную из «for» файла «in», и перейти к другому скрипту не удалось
  • Портативный способ получить абсолютный путь скрипта?
  • Возврат переменной из функции
  • Считайте и объедините последовательные паттерны
  • Interesting Posts

    Debian 9.1 не будет загружаться (Bootmanager Disearearing)

    Номер Грепинга в файле

    Сервер Debian OpenVPN с несколькими пользователями

    Добавление нового языка в Gedit

    sed – найти правильную последовательность цветов для ANSI, расширенной 256 цветов

    Является ли ядро ​​удалять записи в / dev на initramfs?

    Можно ли вводить новые строки в выводе коровника / коровника, сохраняя при этом «пузырь»?

    пользователи без полномочий root не могут отправлять почту из командной строки с помощью exim

    Разница между псевдонимом в zsh и псевдонимом в bash

    Запустить XTerm с пользовательской историей bash

    Связывание нелокального адреса на NetBSD

    Перенаправление нескольких команд в качестве входных данных

    Поиск строк в текстовом файле для шаблона между двумя позициями и печать всей строки

    Имеет ли git информацию об используемых идентификаторах id / group id?

    `tail -n 40 / var / log / apache2 / error.log` без` sudo`

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