分页: 1 / 1

各位大虾,请1帮忙改错...

发表于 : 2010-09-13 23:56
youxia1873
脚本:
#testlogin.sh
username=""
password=""
Prompt
read username
while[$username !="Q"]
do
if [$username!=""]
echo -n "password for $username:"
stty -echo
read password
stty echo
case $username in
root)
echo "hello, root. your password is \"$password\",be careful not to let out your password :)"
;;
*)
echo "hello. $username. your password is \"$password\"."
;;
esac
echo "welcome to the system"
fi
Prompt
read username
done
Prompt()
{
echo "login emulation (Type 'Q' to quit)"
echo -n "login:"
}
——————————————————————————————————————————————————
pangyang@pangyang-desktop:~$ ./testlogin.sh
./testlogin.sh: line 4: Prompt:找不到命令

./testlogin.sh: line 6: while[ !=Q]:找不到命令
./testlogin.sh: line 7: 在未预料的“do”附近出现语法错误
./testlogin.sh: line 7: ` do '

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 0:09
cnkilior
1、定义放在调用前
2、[]要空格

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 1:04
youxia1873
改过,还是有错误:
#testlogin.sh
username=""
password=""

Prompt()
{
echo "login emulation (Type 'Q' to quit)"
echo -n "login:"
}
Prompt
read username
while [ $username !="Q" ]
do
if [$username!=""]
echo -n "password for $username:"
stty -echo
read password
stty echo
case $username in
root)
echo "hello, root. your password is \"$password\",be careful not to let out your password :)"
;;
*)
echo "hello. $username. your password is \"$password\"."
;;
esac then
echo "welcome to the system"
fi
Prompt
read username
done
——————————————————————————————————————————————
pangyang@pangyang-desktop:~$ sh testlogin.sh
login emulation (Type 'Q' to quit)
login:root
[: 31: root: unexpected operator

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 12:26
sai9924
if [$username!=""] 空格

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 12:56
youxia1873
sai9924, 空格我全换过来了,还是没用。
[: 31: root: unexpected operator
这是什么错?

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 13:15
sai9924
#testlogin.sh
username=""
password=""

Prompt()
{
echo "login emulation (Type 'Q' to quit)"
echo -n "login:"
}
Prompt
read username
while [ "$username" != "Q" ]
do
if [ "$username" != "" ]
echo -n "password for $username:"
stty -echo
read password
stty echo
case $username in
root )
echo "hello, root. your password is \"$password\",be careful not to let out your password "
;;
* )
echo "hello. $username. your password is \"$password\"."
;;

esac then
echo "welcome to the system"
fi
Prompt
read username
done

Re: 各位大虾,请1帮忙改错...

发表于 : 2010-09-14 20:00
youxia1873
sai9924, 谢谢,问题解决了,非常开心。不过你改了哪里呀?