入力ファイルの単一変数を配列に保存する

入力ファイルの単一変数を配列に保存する

ファイルにリストされているユーザー用のログインプログラムを作成しようとしています。名前を配列に保存して存在することを確認しようとすると、ヘッダーのみが返されます。したがって、NAMEをfnameとして入力すると、存在することが示されます。しかし、Bobをfnameとして入力すると、「いいえ」と表示されます。それぞれの名前と姓を配列に保存する方法は?

ユーザー.txt

NAME            PASSWORD        DEPT    AUTH
Bob Jones       12345678        MKTG    N
Sam Smith       password        MKTG    Y
Pat Johnson     87654321        SALES   N
Dina Shore      drowssap        OPS     Y

スクリプト

#!/bin/bash
FILE="users.txt" 

read -p "Please enter first and last name: " fname lname

read -a name < $FILE

for name in "${name[0]}" 

do 

    if [[ ${name[0]} = $fname ]]
    then
            echo "exist"
    else
            echo "Not Exist"
    fi
done

ベストアンサー1

あなたの質問に答えるには:read配列要素の最初の行(タイトル)の単語を読んでください。他のパスは考慮されません。そのコマンドを試すことはできますが、readarray問題には合いません。青少年MMV

配列は必要ありません。適切なテキストツールを使用してください。努力する

#!/bin/bash
FILE="users.txt" 
read -p "Please enter first and last name: " fname lname
if grep "$fname.*$lname" $FILE
  then echo "exist"
  else echo "Not Exist"
fi

おすすめ記事