ファイルにリストされているユーザー用のログインプログラムを作成しようとしています。名前を配列に保存して存在することを確認しようとすると、ヘッダーのみが返されます。したがって、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