строка 45 Синтаксическая ошибка: неожиданный конец файла

Теперь, независимо от того, что я делаю, он всегда говорит, что даже если он не работает, это помогает мне отладить код, пожалуйста. кроме того, в ней 44 строки текста и в строке 45 также искусство ascii - просто собака, хотя это может показаться странным, поскольку мы находимся в меньшей области.

#!/bin/bash 
clear 

echo "Hello Sir How are you? These are some of my features
date
picture"

read word

if [ $word = picture ]
echo "These are the following pictures I have at my disposel: 
Dog"

if [ $word = date ]

w

fi

read word 

if [ $word = dog ]

fi

echo "
      __,-;;;\
    /;;;;;;;;;;;;;;;/ l \ヽ | /___
   /;;;;;;;;;;;;;;/        ヽ;;;;;;\
  ヽ;;;;;;;;;;;ノ         |;;;;;;;;;;;l
  / ̄~~           |;;;;;;;;;;;;l
  フ  ○          \;;;;;ノ
 ,-~~         ○    ヽ,,,,,,,,,,,,,,、   , , ,
  ~/      ●        \,;;;;;;;;;;;;;;;;;;,V;;;;;;;;;゙,
  l_,,,               >,;;;;;;;;;;;;;;;;;;;;;;ヽ;;;;;;;,゙
   |/l  /l ,      ヽ |ヽl,;;;;;;;;;;;;;;;;;;;;;;;;;;;;i- ''
      Y  V ヽllノ レ ヽ)V;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;j
      ゙,               ' ' ' ' ' ' ,',,'
      ゙,    ヽ-,,,,,,,,゙,    ゙       ゙
       ゙,     ゙,  ,゙ ゙    ゙,゙゙゙゙゙,    .,゙
       ゙,    ,゙  ゙,,,゙,     ゙,  ゙,     ,l
        ゙' ' ' ' ' '    ゙' ' ' ' ' '   ゙' ' ' ' '  " 
0
задан 2 April 2014 в 22:11

2 ответа

Ошибка, которую Вы получаете, состоит в том, потому что удар ищет конец if блок и не может найти его перед концом файла, вот почему ошибка для строки 45.

Теперь, у Вас есть различные синтаксические ошибки, в первую очередь, if, блок похож на это:

if [ test something ]
then
    do something
fi

ключевые слова then и fi необходимы. Затем необходимо заключить в кавычки переменные и строки в [ ] тестовая конструкция, и необходимо также знать, что сценарий повредится на пробелах и неожиданном входе.

А рабочая версия Вашего сценария была бы:

#!/bin/bash 
clear 

echo "Hello Sir How are you? These are some of my features
date
picture"

read word

if [ "$word" = "picture" ]
then
echo "These are the following pictures I have at my disposel: 
Dog"
fi


if [ "$word" = "date" ]
then
    w
fi

read word

if [ "$word" = "dog" ]
then
echo "
      __,-;;;\
    /;;;;;;;;;;;;;;;/ l \ヽ | /___
   /;;;;;;;;;;;;;;/        ヽ;;;;;;\
  ヽ;;;;;;;;;;;ノ         |;;;;;;;;;;;l
  / ̄~~           |;;;;;;;;;;;;l
  フ  ○          \;;;;;ノ
 ,-~~         ○    ヽ,,,,,,,,,,,,,,、   , , ,
  ~/      ●        \,;;;;;;;;;;;;;;;;;;,V;;;;;;;;;゙,
  l_,,,               >,;;;;;;;;;;;;;;;;;;;;;;ヽ;;;;;;;,゙
   |/l  /l ,      ヽ |ヽl,;;;;;;;;;;;;;;;;;;;;;;;;;;;;i- ''
      Y  V ヽllノ レ ヽ)V;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;j
      ゙,               ' ' ' ' ' ' ,',,'
      ゙,    ヽ-,,,,,,,,゙,    ゙       ゙
       ゙,     ゙,  ,゙ ゙    ゙,゙゙゙゙゙,    .,゙
       ゙,    ,゙  ゙,,,゙,     ゙,  ゙,     ,l
        ゙' ' ' ' ' '    ゙' ' ' ' ' '   ゙' ' ' ' '  " 
fi

Примечание, что у Вас все еще есть проблемы проектирования, это не правильно написанный сценарий кроме не обработки никаких ошибок, Вы также не выходите, если какой-либо выбор вводится, что означает, что, неважно, что я делаю, я в конечном счете доберусь до печати собаки. Даже если я вхожу date, Вы могли бы хотеть добавить [приблизительно 118] вызовы там.

0
ответ дан 2 April 2014 в 22:11

Вы отсутствовали fi здесь, и я очистил его немного (например, распоряжение) -

if [ "$word" = "picture" ]; then
  echo "These are the following pictures I have at my disposal: Dog"
fi # <-- Right there.
0
ответ дан 2 April 2014 в 22:11

Другие вопросы по тегам:

Похожие вопросы: