In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 21:
	[ $# -ge 3 ] && [ "$1" ] && [ "$2" ] && [ "$3" ] ||
                                             ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 24:
	local _var _opt _arg
        ^------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 38:
				eval $_var='"${_arg#*=}"'
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
				eval "$_var"='"${_arg#*=}"'


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 41:
			$_opt)
                        ^---^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 44:
				eval $_var=yes
                                     ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
				eval "$_var"=yes


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 58:
	[ $# -eq 1 ] && [ "$1" ] ||
                     ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 61:
	local _class=$1
        ^----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	local _class="$1"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 77:
	[ $# -eq 1 ] && [ "$1" ] ||
                     ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 80:
	local _class _members _protocol
        ^-----------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 86:
		eval _members=\"\$_${_class}_members\"
                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _members=\"\$_"${_class}"_members\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 101:
	set -- $CLASSES
               ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	set -- "$CLASSES"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 109:
	[ $# -eq 2 ] && [ "$1" ] && [ "$2" ] ||
                                 ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 112:
	local _class=${1#class=}
        ^----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                     ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	local _class="${1#class=}"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 116:
	! _class_available $_class ||
                           ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	! _class_available "$_class" ||


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 124:
	eval _${_class}_desc=\$_desc
              ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	eval _"${_class}"_desc=\$_desc


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 125:
	eval unset _${_class}_members
                    ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	eval unset _"${_class}"_members


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 132:
	[ $# -ge 2 ] && [ "$1" ] && [ "$2" ] ||
                                 ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 136:
	local _class=${1#class=}
        ^----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                     ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	local _class="${1#class=}"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 140:
	_class_available $_class ||
                         ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	_class_available "$_class" ||


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 147:
		eval _${_class}_$_info=\"$_value\"
                      ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                         ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _"${_class}"_"$_info"=\""$_value"\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 156:
	[ $# -ge 2 ] && [ "$1" ] && [ "$2" ] ||
                                 ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 160:
	local _class _protocol
        ^--------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 166:
	_class_available $_class ||
                         ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	_class_available "$_class" ||


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 170:
	for _protocol in $@ do
                         ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 172:
		! _protocol_available $_protocol ||
                                      ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		! _protocol_available "$_protocol" ||


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 175:
		eval _${_class}_members=\"\$_${_class}_members \$_protocol\"
                      ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                             ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _"${_class}"_members=\"\$_"${_class}"_members \$_protocol\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 183:
	local _ret_val _found _info _protocol _class _protocols
        ^-- SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 193:
		eval _protocols=\"\$_${_class}_members\"
                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _protocols=\"\$_"${_class}"_members\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 197:
				eval _ret_val=\"\$_${_class}_$_info\"
                                                   ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                             ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
				eval _ret_val=\"\$_"${_class}"_"$_info"\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 213:
	local _f=_exec_member_command
        ^------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 215:
	[ $# -ge 2 ] && [ "$1" ] && [ "$2" ] ||
                                 ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 218:
	local _info _class _info_val _members _member _cmd _skip _output
        ^-- SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 224:
	_class_available $_class ||
                         ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	_class_available "$_class" ||


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 229:
	eval _info_val=\$_${_class}_$_info
                          ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	eval _info_val=\$_"${_class}"_"$_info"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 230:
	eval _members=\$_${_class}_members
                         ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	eval _members=\$_"${_class}"_members


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 232:
		eval _cmd=\$${_member}_COMMAND
                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _cmd=\$"${_member}"_COMMAND


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 233:
		eval _skip=\$${_member}_SKIP
                             ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _skip=\$"${_member}"_SKIP


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 234:
		eval _skip=\"$_skip\"
                             ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _skip=\""$_skip"\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 235:
		[ $_skip ] || [ -z "$_cmd" ] || {
                  ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		[ "$_skip" ] || [ -z "$_cmd" ] || {


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 236:
			_cmd=$(echo $_cmd | sed -e 's/<info>/$_info_val/')
                                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                   ^--------------------^ SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.

Did you mean: 
			_cmd=$(echo "$_cmd" | sed -e 's/<info>/$_info_val/')


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 237:
			eval _cmd=\"$_cmd\"
                                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
			eval _cmd=\""$_cmd"\"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 249:
	local _class _members _member _cmd
        ^-- SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 253:
		eval echo "Desc: "\$_${_class}_desc
                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval echo "Desc: "\$_"${_class}"_desc


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 254:
		eval echo "DSCP: "\$_${_class}_dscp
                                     ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval echo "DSCP: "\$_"${_class}"_dscp


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 255:
		eval _members=\$_${_class}_members
                                 ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		eval _members=\$_"${_class}"_members


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 258:
			eval _cmd=\$${_member}_COMMAND
                                    ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
			eval _cmd=\$"${_member}"_COMMAND


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 286:
	local _f _command _info _proto
        ^----------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 287:
	f=_input_parser
        ^-- SC2034 (warning): f appears unused. Verify use (or export if used externally).


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 302:
				_get_protocol_info $_info $_proto
                                                   ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                          ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
				_get_protocol_info "$_info" "$_proto"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 312:
				_exec_member_command $_info $_class
                                                     ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                            ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
				_exec_member_command "$_info" "$_class"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 339:
	local _command
        ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 365:
[ -f $CONF_PATH ] || _error "Failed to locate '$CONF_NAME'"
     ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
[ -f "$CONF_PATH" ] || _error "Failed to locate '$CONF_NAME'"


In /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/etc/qos/qos.sh line 366:
. $CONF_PATH || _error "Failed to source '$CONF_PATH'"
  ^--------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.
  ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
. "$CONF_PATH" || _error "Failed to source '$CONF_PATH'"

For more information:
  https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
  https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const...
  https://www.shellcheck.net/wiki/SC2034 -- f appears unused. Verify use (or ...