我是shell脚本的新手,错误发生在第23行
elif [grep $uni Aus-Uni.txt | wc -l
-ne 0]
任何人都可以告诉我为什么我会收到此错误
"2") echo "please enter an number to view universities or a state name to view the number of uni in that state"
read uni
if [ uni -le `cat Aus-Uni.txt | wc -l` ]
then
echo `tail -$uni Aus-Uni.txt`
else
echo "The number you entered is too large"
fi
elif [`grep $uni Aus-Uni.txt | wc -l` -ne 0 ]
then
echo `grep $uni Aus-Uni.txt`
else
echo "No university in $uni was found"
fi
;;
答案 0 :(得分:1)
Bash告诉你,它并没有期待elif
那里 - 并且对于你发布的代码,我也没有。
elif
是else if
的缩写,需要转到else子句的位置。
如果您缩进代码,则更容易看到。
我已将elif
更改为if
,bash会发现结构更正确。但是,(对我而言)它并不清楚你想要实现的目标,所以它可能无法达到你想要的效果。
"2") echo "please enter an number to view universities or a state name to view the number of uni in that state"
read uni
if [ uni -le `cat Aus-Uni.txt | wc -l` ]
then
echo `tail -$uni Aus-Uni.txt`
else
echo "The number you entered is too large"
fi
# This line had elif but there's no if for it to be an else for
if [`grep $uni Aus-Uni.txt | wc -l` -ne 0 ]
then
echo `grep $uni Aus-Uni.txt`
else
echo "No university in $uni was found"
fi
;;
答案 1 :(得分:0)
elif
没有匹配的if
。您使用的唯一 if 已经由 fi 终止。
如果仅用于语法,请将elif
替换为if
。当然,无论该程序是否真正按照您的意愿行事,我都不能说。