Open musjj opened 1 year ago
Thanks for reporting - this does indeed look like a bug. Happy to review a PR, as this one shouldn't be hard to fix.
I realised in zsh, the expression like this would be treated as +
operation and will make spaces in between, breaking the script.
if (($+commands[exa])); then
((!0)) && echo true || echo false # bash: !0: event not found
I believe this is only true for interactive shells since this syntax triggers history expansion. It's perfectly fine to use it from within a script by the very default, unless you explicitly enable histexpand|history
there as well (which I guess is a valid use-case, though I personally prefer to trace the entire thing rather then save a history of it).
hi @mvdan ! i'm new to this project and to contributing to open-source in general. i would like to pick up this issue but am unsure of what needs to be done. would you be able to help me out with how to get started?
By default, shfmt removes brackets within parentheses, but this breaks certain kinds of expressions.
For example:
shfmt will format this into: