Кто сломал шелл, и как именно
Feb. 1st, 2012 12:28 pmПотратил утро на следующий баг в bash: если функция определяется не с помощью синтаксиса foo() {телофункции}, а с использованием ключевого слова function, то ИНОГДА при выполнении она подставляет значения позиционных параметров из объемлющего скрипта. Ну то есть внутри тела функции $1 это не ее первый параметр, а первый параметр вызывающего скрыпта.
У bash всегда были тонкости с функциями function, но о такой тонкости молчат мои учебники.
И простейший-то пример работает безупречно: для воспроизведения надо еще потрудиться, но некоторые мои товарищи, сами того не зная, отлично потрудились; во всех вложенных скриптах почему-то оказывается не проставлена переменная SHELL, и вот такое вышеописанное происходит.
Я не хочу этого знать, это лишнее, унесите это от меня.
У bash всегда были тонкости с функциями function, но о такой тонкости молчат мои учебники.
И простейший-то пример работает безупречно: для воспроизведения надо еще потрудиться, но некоторые мои товарищи, сами того не зная, отлично потрудились; во всех вложенных скриптах почему-то оказывается не проставлена переменная SHELL, и вот такое вышеописанное происходит.
Я не хочу этого знать, это лишнее, унесите это от меня.