username="hello"
password="3333"
function login {
# 1 - Username
# 2 - Password
match=0
cat LoginsMaintMenu.txt | while read line; do
x=`echo $line | awk '{print $1}'`
y=`echo $line | awk '{print $2}'`
if [ "${x}" == "${1}" ] && [ "${y}" == "${2}" ]; then
echo "match"
match=1
echo $match
break
fi
done
echo $match
return $match
}
echo $username $password
login ${username} ${password}
if [ $? -eq 0 ]; then
echo "FAIL"
else
echo "success"
fi
出力:
hello 3333
match
1
0
FAIL
問題:なぜそれが「失敗」をエコーしているのか理解できません。「match」変数はwhileループ内で1に設定されますが、何らかの理由でwhileループから抜けると、宣言からの最初のゼロであると見なされます。
いろいろなことをやってみたので、具体的なことを教えてもらえたらいいなと思います!
ありがとう