Безумие баш скриптов

October 4, 2016

Я люблю маленькие баш-скрипты. Это нативный, быстрой способ что-то автоматизировать, посчитать или сделать. Баш - полноценный язык программирования, хотя и с специфическим синтаксисом. Однако есть одна вещь, которая меня полностью убивает, не знаю зачем так сделано, даже гуглить не буду, может быть кто-нибудь в комментариях ответит.

Итак, интерпретатор баша исполняет скрипт строчка за строчкой и если поменять файл во время исполнения долгого скрипта, то эффект будет не предсказуемым. Это полностью ломает привычный шаблон разработчика, когда запустил программу и в этот момент меняешь код для следующего запуска. Я на этом попадался несколько раз и каждый раз был в шоке.

Самый простой пример, который смог сходу придумать:

# x.sh
echo sleep 1 >> x.sh
echo echo hello >> x.sh

Так вот, если запустить bash x.sh, то он выведет hello! WTF? Не знаю.

comments powered by Disqus