Some commands that can help with nuances of shell:
Check syntax:
sh -n myscript
Check for bash-specific syntax:
checkbashisms myscript
Check for various gotchas:
shellcheck myscript
Check for style:
bashate myscript
Check for badness:
grep -rE '(wget|curl).\|( sudo)? *(ba|z|)sh' myscript