2015-11-23 4 views
2

Скрипт для ВашеИмяНепредвиденная ошибка EOF

#!/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 он принимает ваше имя проверяет, что Дэрил, если не останавливает программу. Затем, если он задает оценку, затем считывает оценку и возвращает соответствующее сообщение в соответствии со степенью.

Каждый раз, когда я запускаю его я получаю ...

[email protected]:~# . 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 ]' 

Любая помощь будет оценен по достоинству!

+0

Спасибо за вашу помощь, я новичок в этом, так что это действительно помогло! – bobblehead808

ответ

4

У вас есть несколько проблем.

«неожиданный конец файла» проблема возникает потому, что у вас есть непревзойденные двойные кавычки:

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 
+0

"Fie on you"? ghoti

Смежные вопросы