In /usr/bin/tgz line 41:
{	echo "Error: $0: ${@-}." >&2
                         ^---^ SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/tgz line 56:
	src="${@-}"
            ^-----^ SC2124: Assigning an array to a string! Assign as array, or use * instead of @ to concatenate.


In /usr/bin/tgz line 64:
*.t?z | *.?z | *.z | *.Z | *.tz | *.tz? )
        ^--^ SC2221: This pattern always overrides a later one on line 64.
                           ^--^ SC2222: This pattern never matches because of a previous pattern on line 64.


In /usr/bin/tgz line 77:
if [ -z "$dest" -o "X$dest" = 'X-' ]; then
                ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /usr/bin/tgz line 79:
	tar cvfS - -- $src | gzip -9v
                      ^--^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
	tar cvfS - -- "$src" | gzip -9v


In /usr/bin/tgz line 82:
	tar -cvS --totals --exclude "$dest" -f - -- $src | gzip -9v > "$dest" 
                                    ^-----^ SC2094: Make sure not to read and write the same file in the same pipeline.
                                                    ^--^ SC2086: Double quote to prevent globbing and word splitting.
                                                                      ^-----^ SC2094: Make sure not to read and write the same file in the same pipeline.

Did you mean: 
	tar -cvS --totals --exclude "$dest" -f - -- "$src" | gzip -9v > "$dest" 

For more information:
  https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ...
  https://www.shellcheck.net/wiki/SC2124 -- Assigning an array to a string! A...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] || [ q ] as [ p -o q...