このスクリプトがtxtファイルの最初の行で繰り返されるのはなぜですか?

このスクリプトが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"

このスクリプトを使用して、ユーザー名ファイル内の各ユーザーのログファイルを収集したいと思います。現在、スクリプトは最初のユーザー名を繰り返し続けています。ログファイルディレクトリ内のすべてのファイルを検索して停止し、リストの次の名前に移動する必要があります。

ベストアンサー1

「$usernameFile」と入力できる場所は2つあります。 1つはグローバルループにあり、もう1つは読み取りにあります。

while read -r line < $usernameFile; do

done < "$usernameFile"

グローバルループにのみ入力する必要があると思います。 (つまり、「完了」の後に入れてください。)

おすすめ記事