Как стать автором
Обновить

Комментарии 5

Это интересно. Я всегда считал, что форк происходит после expansion. Т.е. сперва шелл строит строку и раскрывает все, что надо раскрыть (в частности $((i++)) ) и только потом уже готовая строка форкается в новый процесс.
ShellCheck правильно ругается, не дочитав статью мне сразу было понятно, что там нужны кавычки или присвоить значение переменной, даже если использовать значение переменной, то в имени файла нужны кавычки, а теперь поищите в интернете ответ зачем там нужны кавычки. ShellCheck как раз защищает от unpredictable behavior и чтобы вы в своих скриптах нечаянно не сделали, что типа rm -fr /. У меня 0.7.2 и делает такое предупреждение.
Кавычки конечно да, но статья совершенно о другом, стоит все таки прочитать до конца(хотя бы до середины), а то получается как на картинке...
картинка
image
vaniacer там можно до конца не дочитывать, так как сразу бросается гавнокод стайл и антипатерн, инкремент не желательно в шаблоне использовать, от выстрела себе в ногу какраз все правильно shellcheck защитил, сначала делается инкремент ((i++)), а дальше в шаблон подставляется ${i}, а если совсем по хорошему делать, то в пути к файлам желательно использовать ${i:?}.
Что автор не понимает поведение BASH это лично его безграмотность, а не косяк shellchecker.

Для встроенных команд, которые не разветвляются, ...

Промптом переводил?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий