Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Отсутствующие цитаты

Если мы отредактируем наш скрипт и удалим завершающую цитату из аргумента, следующего за первым

команда echo:


#! / Bin / Баш


# проблема: скрипт для демонстрации типичных ошибок number = 1

если [$ number = 1]; тогда

echo "Число равно 1.

еще

echo "Число не равно 1."

fi

#! / Bin / Баш


# проблема: скрипт для демонстрации типичных ошибок number = 1

если [$ number = 1]; тогда

echo "Число равно 1.

еще

echo "Число не равно 1."

fi


Смотрите, что происходит:



[я @ linuxbox ~] $ беда

/ home / me / bin / Trouble: строка 10: неожиданный EOF при поиске соответствия `" '

/ home / me / bin / Trouble: строка 13: синтаксическая ошибка: неожиданный конец файла

[я @ linuxbox ~] $ беда

/ home / me / bin / Trouble: строка 10: неожиданный EOF при поиске соответствия `" '

/ home / me / bin / Trouble: строка 13: синтаксическая ошибка: неожиданный конец файла


Это вызывает две ошибки. Интересно, что номера строк в сообщениях об ошибках не там, где отсутствующая цитата была удалена, а гораздо позже в программе. Если мы проследим за программой после пропущенной цитаты, мы сможем понять, почему. колотить продолжит поиск заключительной цитаты, пока не найдет одну, что он и сделает сразу после второй эхо команда. После этого, колотить становится очень запутанным. Синтаксис последующих if команда не работает, потому что fi оператор теперь находится внутри строки в кавычках (но открытой).

В длинных скриптах такую ​​ошибку довольно сложно найти. Использование редактора с подсветкой синтаксиса поможет, поскольку в большинстве случаев он будет отображать строки в кавычках отличным от других видов синтаксиса оболочки. Если полная версия напор установлен, подсветку синтаксиса можно включить, введя команду:



: синтаксис на

: синтаксис на


Лучшие облачные вычисления для ОС в OnWorks: