脚本为您的名字
#!/bin/bash echo "what is your name?" read name if test "$name" = "Daryl" then echo "Hey, how are you?" else echo "sorry, im looking for Daryl" fi
脚本为yourGrade
#!/bin/bash ./yourname if[ 0 -eq "$?" ] then exit 0 else echo "what is your grade?" read grade if [ "$grade" -gt 90 ] then echo "Awesome! You got an A" elif [ "$grade -le 90 ] && [ "$grade" -gt 80 ] then echo "Good! You got a B" elif [ "$grade" -lt 80 ]; then echo "You need to work harder!" fi
我试图得到它,所以在脚本yourGrade它需要你的名字检查,它是Daryl,如果不是停止程序。 然后如果是要求等级,则读取等级值并按照等级返回相应的消息。
每当我运行它,我得到…
root@kali:~# . yourGrade What is your name? >Daryl Hey how are you! -bash : yourGrade: line 17: syntax error near unexpected token 'elif' -bash : yourGrade: line 17:' elif [ "$grade" -le 90 ] && [ "$grade" -gt 80 ]'
任何帮助,将不胜感激!
你有几个问题。
出现“意外的EOF”问题是因为您有一个无法匹敌的双引号:
elif [ "$grade -le 90 ] && [ "$grade" -gt 80 ]
你需要:
elif [ "$grade" -le 90 ] && [ "$grade" -gt 80 ]
一旦你修好了,你有一个问题:
if[ 0 -eq "$?" ]
[
是一个命令,只有当它是一个单词时才被认为是一个命令。 你需要在if
和[
之间有一个空格。
if [ 0 -eq "$?" ]
那么你会遇到一个问题,因为你的错误缩进,事实上你有两个if
语句(一个嵌套在另一个里面),只有一个fi
; 在你身上!
最后注意到那些正好80分的人不会被告知关于他们分级的事情。
#!/bin/bash ./yourname if [ 0 -eq "$?" ] then exit 0 else echo "what is your grade?" read grade if [ "$grade" -gt 90 ] then echo "Awesome! You got an A" elif [ "$grade" -le 90 ] && [ "$grade" -gt 80 ] then echo "Good! You got a B" elif [ "$grade" -lt 80 ]; then echo "You need to work harder!" else echo "You scored 80; that's only barely acceptable" fi fi