Shellcheck has saved me countless times, but I noticed it's hard to get people to adopt it into their workflow.
I've introduced probably a dozen people to shellcheck and warn them ahead of time that their scripts are broken. They try it, see a flood of errors and warnings, close the window, and never use it again.
The logic surrounding their undefined variables and improper conditions happen to work as hoped, by luck, combined with their strict adherence to "it's best practice to not use spaces" both keep their scripts crawling along "just fine".