Store Single Variable from Input File into Array











up vote
0
down vote

favorite












I am trying to create a logon program for users listed on a file. When I try to store the names into and array and check to see if they exist, I only return the header. So if I put NAME as the fname, it says it exists. But if I put Bob as fname, it says it doesn't. How do I store each first and last name into an array?



users.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


Script



#!/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









share|improve this question
























  • Why an array at all?
    – RudiC
    Dec 6 at 11:56










  • The assignment asks for it but I may not end up using one.
    – Jeff
    Dec 6 at 21:58















up vote
0
down vote

favorite












I am trying to create a logon program for users listed on a file. When I try to store the names into and array and check to see if they exist, I only return the header. So if I put NAME as the fname, it says it exists. But if I put Bob as fname, it says it doesn't. How do I store each first and last name into an array?



users.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


Script



#!/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









share|improve this question
























  • Why an array at all?
    – RudiC
    Dec 6 at 11:56










  • The assignment asks for it but I may not end up using one.
    – Jeff
    Dec 6 at 21:58













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am trying to create a logon program for users listed on a file. When I try to store the names into and array and check to see if they exist, I only return the header. So if I put NAME as the fname, it says it exists. But if I put Bob as fname, it says it doesn't. How do I store each first and last name into an array?



users.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


Script



#!/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









share|improve this question















I am trying to create a logon program for users listed on a file. When I try to store the names into and array and check to see if they exist, I only return the header. So if I put NAME as the fname, it says it exists. But if I put Bob as fname, it says it doesn't. How do I store each first and last name into an array?



users.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


Script



#!/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






linux bash






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 6 at 10:37

























asked Dec 6 at 2:44









Jeff

1




1












  • Why an array at all?
    – RudiC
    Dec 6 at 11:56










  • The assignment asks for it but I may not end up using one.
    – Jeff
    Dec 6 at 21:58


















  • Why an array at all?
    – RudiC
    Dec 6 at 11:56










  • The assignment asks for it but I may not end up using one.
    – Jeff
    Dec 6 at 21:58
















Why an array at all?
– RudiC
Dec 6 at 11:56




Why an array at all?
– RudiC
Dec 6 at 11:56












The assignment asks for it but I may not end up using one.
– Jeff
Dec 6 at 21:58




The assignment asks for it but I may not end up using one.
– Jeff
Dec 6 at 21:58










1 Answer
1






active

oldest

votes

















up vote
0
down vote













To answer your question: the single read reads the first line's (the header's) words into the array elements. No other lines are considered. You might experiment with the readarray command, but that doesn't lean itself towards your problem. YMMV



No array needed. Use adequate text tools instead. Try



#!/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





share|improve this answer





















  • Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
    – Jeff
    Dec 6 at 21:55













Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f486276%2fstore-single-variable-from-input-file-into-array%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













To answer your question: the single read reads the first line's (the header's) words into the array elements. No other lines are considered. You might experiment with the readarray command, but that doesn't lean itself towards your problem. YMMV



No array needed. Use adequate text tools instead. Try



#!/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





share|improve this answer





















  • Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
    – Jeff
    Dec 6 at 21:55

















up vote
0
down vote













To answer your question: the single read reads the first line's (the header's) words into the array elements. No other lines are considered. You might experiment with the readarray command, but that doesn't lean itself towards your problem. YMMV



No array needed. Use adequate text tools instead. Try



#!/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





share|improve this answer





















  • Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
    – Jeff
    Dec 6 at 21:55















up vote
0
down vote










up vote
0
down vote









To answer your question: the single read reads the first line's (the header's) words into the array elements. No other lines are considered. You might experiment with the readarray command, but that doesn't lean itself towards your problem. YMMV



No array needed. Use adequate text tools instead. Try



#!/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





share|improve this answer












To answer your question: the single read reads the first line's (the header's) words into the array elements. No other lines are considered. You might experiment with the readarray command, but that doesn't lean itself towards your problem. YMMV



No array needed. Use adequate text tools instead. Try



#!/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






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 6 at 12:03









RudiC

3,9541312




3,9541312












  • Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
    – Jeff
    Dec 6 at 21:55




















  • Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
    – Jeff
    Dec 6 at 21:55


















Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
– Jeff
Dec 6 at 21:55






Thanks! I needed to match the user name with the password in the file so I did if grep "$fname.*$lname.*$psswd" $FILE and it worked great.
– Jeff
Dec 6 at 21:55




















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f486276%2fstore-single-variable-from-input-file-into-array%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

List directoties down one level, excluding some named directories and files

list processes belonging to a network namespace

list systemd RuntimeDirectory mounts