Почему этот скрипт зацикливается на первой строке файла txt?

#!/bin/bash usernameFile="/home/netadmin/username_list.txt" logFile="/var/log/netvpn-mag-archive/netvpn-mag-20160" while read -r line < $usernameFile; do if [[ "$line" != " " ]]; then zgrep -w "$line" "$logFile"* >> grep_output.txt fi done < "$usernameFile" 

с этим скриптом я хочу grep против файла журнала каждый пользователь в файле имени пользователя. В настоящее время скрипт перебирает первое имя пользователя снова и снова. Мне нужно, чтобы он остановился после прохождения всех файлов в каталоге журнала и переместился к следующему имени в списке.

2 Solutions collect form web for “Почему этот скрипт зацикливается на первой строке файла txt?”

Есть два места, где вы вводите «$ usernameFile»: один в глобальном цикле, другой – в read.

 while read -r line < $usernameFile; do done < "$usernameFile" 

вы должны вводить его только в глобальном цикле, я думаю. (Другими словами, только положите его после «done»).

 cat "$usernameFile" | while read line; do if [[ "$line" != " " ]]; then zgrep -w "$line" "$logFile"* >> grep_output.txt fi done 
  • автоматическое удаление записей меню fluxbox
  • Использовать выходные данные в качестве переменной в арифметическом вычислении
  • Возврат части строки, соответствующей шаблону
  • Выполнение zsh rehash после сборки
  • bash + как увеличивать переменные, содержащие буквы a..z
  • отправить ctrl + q в процесс в bash
  • Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?
  • Неизвестный синтаксис в /etc/rc.d/init.d/functions
  • Что означает $ {1: 0: 2} в этом контексте?
  • Удалить имя файла при рекурсивном подсчете числа вхождений шаблона
  • Shell Script для переименования текущего рабочего каталога с заданным именем
  • Interesting Posts

    почему бы нагрузка равна 5, если в runq есть нулевые процессы?

    Невозможно применить chmod к файлу

    Почему в папке Tomboy так много файлов и папок?

    Как использовать интерфейс Linux kernel bind / unbind для USB-HID-устройств?

    Что делать, когда некоторые ошибки происходят во время процесса apt-get обновления?

    Использование команды tail для создания файла

    Каковы последствия для безопасности, связанные с отсутствием источников «security.debian.org» из sources.list в Debian Jessie?

    Как проверить, взаимодействуют ли два локальных процесса через сокеты или ipcs?

    Нужна помощь для объединения трех разделенных строк сценария bash в одну строку

    Как узнать коды клавиш для клавиш Ctrl + вверх и вниз для экрана TERM =?

    Как установить переменные среды другого процесса?

    Пятое поле запроса fstab

    Установить Gvim после vim

    Как отключить перемещение между рабочими областями?

    Команда tmux для перемещения панели к краю окна?

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