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
linux bash
add a comment |
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
linux bash
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
add a comment |
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
linux bash
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
linux bash
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
add a comment |
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
add a comment |
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
Thanks! I needed to match the user name with the password in the file so I didif grep "$fname.*$lname.*$psswd" $FILEand it worked great.
– Jeff
Dec 6 at 21:55
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Thanks! I needed to match the user name with the password in the file so I didif grep "$fname.*$lname.*$psswd" $FILEand it worked great.
– Jeff
Dec 6 at 21:55
add a comment |
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
Thanks! I needed to match the user name with the password in the file so I didif grep "$fname.*$lname.*$psswd" $FILEand it worked great.
– Jeff
Dec 6 at 21:55
add a comment |
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
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
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 didif grep "$fname.*$lname.*$psswd" $FILEand it worked great.
– Jeff
Dec 6 at 21:55
add a comment |
Thanks! I needed to match the user name with the password in the file so I didif grep "$fname.*$lname.*$psswd" $FILEand 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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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