Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Відсутні лапки

Якщо ми відредагуємо наш сценарій і видалимо кінцеву цитату з аргументу, наступного за першим

команда ехо:


#! / бін / баш


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

якщо [ $число = 1 ]; тоді

echo «Число дорівнює 1.

ще

echo "Число не дорівнює 1."

fi

#! / бін / баш


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

якщо [ $число = 1 ]; тоді

echo «Число дорівнює 1.

ще

echo "Число не дорівнює 1."

fi


Дивіться, що відбувається:



[me@linuxbox ~]$ біда

/home/me/bin/trouble: рядок 10: неочікуваний EOF під час пошуку відповідного `"'

/home/me/bin/trouble: рядок 13: синтаксична помилка: неочікуваний кінець файлу

[me@linuxbox ~]$ біда

/home/me/bin/trouble: рядок 10: неочікуваний EOF під час пошуку відповідного `"'

/home/me/bin/trouble: рядок 13: синтаксична помилка: неочікуваний кінець файлу


Він генерує дві помилки. Цікаво, що номери рядків, які повідомляються в повідомленнях про помилки, містяться не там, де була видалена відсутня цитата, а набагато пізніше в програмі. Якщо ми стежимо за програмою після відсутньої цитати, ми можемо зрозуміти, чому. бити продовжуватиме шукати кінцеву цитату, доки не знайде одну, що й робить одразу після другої нудьгувати команда. Після того, бити стає дуже розгубленим. Синтаксис наступного if команда порушена, оскільки fi Оператор тепер знаходиться всередині рядка в лапках (але відкритого).

У довгих сценаріях таку помилку може бути досить важко знайти. Використання редактора з підсвічуванням синтаксису допоможе, оскільки в більшості випадків він відображатиме рядки в лапках у відмінний від інших видів синтаксису оболонки. Якщо повна версія натиск встановлено, підсвічування синтаксису можна ввімкнути, ввівши команду:



:синтаксис увімкнено

:синтаксис увімкнено


Найпопулярніші хмарні обчислення ОС на OnWorks: