以下代码引发编译错误,并显示消息“意外令牌'fi'附近的语法错误”或“文件意外结尾”。
#!/bin/bash
pas=total ; echo "Put your paswword here: " ; if read -t 4 passw then ; if [ $passw=$pas ] then ; echo "Right password" else ; echo "Wrong password" fi else ; echo "Wrong password" ; fi ;
请解释,错误在哪里?或者教我如何使用;
编写Bash代码,而无需继续进行新的一行。
答案 0 :(得分:2)
在这里尝试:
pas=total ; echo "Put your paswword here: " ; if read -t 4 passw ; then if [ $passw=$pas ]; then echo "Right password"; else echo "Wrong password"; fi else echo "Wrong password" ; fi ;
在if语句中,您必须在条件之后和要执行的代码之后包括分号:
if [ ... ]; then ... ; fi
另外,您不需要在分号之后输入分号。