- SC2145: Argument mixes string and array. Use * or separate argument.
- SC2068: Double quote array expansions to avoid re-splitting elements.
- SC2221 & SC2222: This pattern always overrides a later/previous one.
- SC2198: Arrays don't work as operands in [ ]. Use a loop (or concatenate with * instead of @).
- SC2034: _results appears unused. Verify it or export it.
- SC2163: Exporting an expansion rather than a variable.
- SC2091: Remove surrounding $() to avoid executing output.
- SC2153: Possible misspelling: PORTNAME may not be assigned, but portname is.
- SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
- SC2155: Declare and assign separately to avoid masking return values.
- SC2006: Use $(..) instead of legacy `..`.
- SC2046: Quote this to prevent word splitting.
- SC2185: Some finds don't have a default path. Specify '.' explicitly.
- Don't exec with a pipe afterwards, it is weird.
- SC2015: Note that A && B || C is not if-then-else. C may run when A is true.
- SC2162: read without -r will mangle backslashes.
- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options.
- SC1004: This backslash+linefeed is literal. Break outside single quotes if you just want to break the line.
- SC1117: Backslash is literal in "\X". Prefer explicit escaping: "\\X".