ShellCheck - shell script analysis tool version: 0.11.0 license: GNU General Public License, version 3 website: https://www.shellcheck.net Redirect to /tmp/tmp.KqA5V9JG6u and /tmp/tmp.EnhBawI0Ll Tree base: cc8ae8f41c47 ("openvswitch: vport: fix self-deadlock on release of tunnel ports") Now at: 1e30674b3527 ("selftests: openvswitch: add tests for tunnel vport refcounting") ====== Checking before the patch ====== Checking tools/testing/selftests/net/openvswitch/openvswitch.sh - d68fdf4084a3597b59d0d312e2f1fd42dff6491ab389c2e973f83ff27b2cb2bc In openvswitch.sh line 16: if test "X$KSFT_MACHINE_SLOW" == "Xyes"; then ^-------------------^ SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose. Did you mean: if test "$KSFT_MACHINE_SLOW" == "yes"; then In openvswitch.sh line 34: echo "`date +"[%m-%d %H:%M:%S]"` $*" >> ${ovs_dir}/debug.log ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$(date +"[%m-%d %H:%M:%S]") $*" >> "${ovs_dir}"/debug.log In openvswitch.sh line 35: [ $VERBOSE = 0 ] || echo $* ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ "$VERBOSE" = 0 ] || echo "$*" In openvswitch.sh line 39: info "waiting $WAIT_TIMEOUT s for: $@" ^-- SC2145 (error): Argument mixes string and array. Use * or separate argument. In openvswitch.sh line 62: ovs_base=`pwd` ^---^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: ovs_base=$(pwd) In openvswitch.sh line 69: NO_BIN=0 ^----^ SC2034 (warning): NO_BIN appears unused. Verify use (or export if used externally). In openvswitch.sh line 73: if [ -e $d ]; then ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -e "$d" ]; then In openvswitch.sh line 78: ovs_setenv $1 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_setenv "$1" In openvswitch.sh line 82: [ -e ${ovs_dir}/cleanup ] && . "$ovs_dir/cleanup" ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----------------^ SC1091 (info): Not following: ./cleanup: openBinaryFile: does not exist (No such file or directory) Did you mean: [ -e "${ovs_dir}"/cleanup ] && . "$ovs_dir/cleanup" In openvswitch.sh line 86: echo "$1" > ${ovs_dir}/cleanup.tmp ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$1" > "${ovs_dir}"/cleanup.tmp In openvswitch.sh line 87: cat ${ovs_dir}/cleanup >> ${ovs_dir}/cleanup.tmp ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: cat "${ovs_dir}"/cleanup >> "${ovs_dir}"/cleanup.tmp In openvswitch.sh line 88: mv ${ovs_dir}/cleanup.tmp ${ovs_dir}/cleanup ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mv "${ovs_dir}"/cleanup.tmp "${ovs_dir}"/cleanup In openvswitch.sh line 92: sandbox=$1 ^-----^ SC2034 (warning): sandbox appears unused. Verify use (or export if used externally). In openvswitch.sh line 96: test -e ${ovs_dir}/cleanup || : > ${ovs_dir}/cleanup ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: test -e "${ovs_dir}"/cleanup || : > "${ovs_dir}"/cleanup In openvswitch.sh line 100: if test "X$2" != X; then ^---^ SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose. Did you mean: if test "$2" != ""; then In openvswitch.sh line 101: (ovs_setenv $1; shift; ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: (ovs_setenv "$1"; shift; In openvswitch.sh line 102: info "run cmd: $@"; "$@" >> ${ovs_dir}/debug.log) ^-- SC2145 (error): Argument mixes string and array. Use * or separate argument. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: info "run cmd: $@"; "$@" >> "${ovs_dir}"/debug.log) In openvswitch.sh line 104: ovs_setenv $1 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_setenv "$1" In openvswitch.sh line 112: ovs_sbx "$sbxname" python3 $ovs_base/ovs-dpctl.py add-dp $* ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$sbxname" python3 "$ovs_base"/ovs-dpctl.py add-dp "$*" In openvswitch.sh line 119: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py add-if \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py add-if \ In openvswitch.sh line 122: python3 $ovs_base/ovs-dpctl.py add-if \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: python3 "$ovs_base"/ovs-dpctl.py add-if \ In openvswitch.sh line 123: -u -t "$2" "$3" "$4" >$ovs_dir/$4.out 2>$ovs_dir/$4.err & ^------^ 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. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -u -t "$2" "$3" "$4" >"$ovs_dir"/"$4".out 2>"$ovs_dir"/"$4".err & In openvswitch.sh line 131: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py del-if "$2" "$3" || return 1 ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py del-if "$2" "$3" || return 1 In openvswitch.sh line 140: $* >> $ovs_dir/stdout 2>> $ovs_dir/stderr & ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $* >> "$ovs_dir"/stdout 2>> "$ovs_dir"/stderr & In openvswitch.sh line 142: ip netns exec $netns $* >> $ovs_dir/stdout 2>> $ovs_dir/stderr & ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- 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: ip netns exec "$netns" "$*" >> "$ovs_dir"/stdout 2>> "$ovs_dir"/stderr & In openvswitch.sh line 151: ovs_netns_spawn_daemon $sbx "_default" $* ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_netns_spawn_daemon "$sbx" "_default" "$*" In openvswitch.sh line 175: if [ $TRACING -eq 1 ]; then ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$TRACING" -eq 1 ]; then In openvswitch.sh line 177: ovs_wait grep -q "listening on any" ${ovs_dir}/stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening on any" "${ovs_dir}"/stderr In openvswitch.sh line 185: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py add-flow "$2" "$3" "$4" ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py add-flow "$2" "$3" "$4" In openvswitch.sh line 186: if [ $? -ne 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In openvswitch.sh line 195: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py del-flows "$2" ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py del-flows "$2" In openvswitch.sh line 203: perf record -a -q -e skb:kfree_skb -o ${ovs_dir}/perf.data $* \ ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: perf record -a -q -e skb:kfree_skb -o "${ovs_dir}"/perf.data "$*" \ In openvswitch.sh line 204: >> ${ovs_dir}/stdout 2>> ${ovs_dir}/stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >> "${ovs_dir}"/stdout 2>> "${ovs_dir}"/stderr In openvswitch.sh line 212: local perf_output=`perf script -i ${ovs_dir}/perf.data -F trace:event,trace` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local perf_output=$(perf script -i "${ovs_dir}"/perf.data -F trace:event,trace) In openvswitch.sh line 215: return `echo "$perf_output" | grep "$pattern" | wc -l` ^-- SC2046 (warning): Quote this to prevent word splitting. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-------------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: return $(echo "$perf_output" | grep "$pattern" | wc -l) In openvswitch.sh line 222: ovs_add_flow $@ &> /dev/null $@ && return 1 ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. In openvswitch.sh line 266: return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$ksft_skip" In openvswitch.sh line 280: set -- $testcase; ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: set -- "$testcase"; In openvswitch.sh line 281: ovs_test_flow_fails "test_psample" psample $min_key $2 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_test_flow_fails "test_psample" psample "$min_key" "$2" In openvswitch.sh line 305: $ovs_dir/s0.out | cut -d ":" -f 2 | tr -d ' ') ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$ovs_dir"/s0.out | cut -d ":" -f 2 | tr -d ' ') In openvswitch.sh line 312: ovs_spawn_daemon "test_psample" python3 $ovs_base/ovs-dpctl.py psample-events ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_spawn_daemon "test_psample" python3 "$ovs_base"/ovs-dpctl.py psample-events In openvswitch.sh line 313: ovs_wait grep -q "listening for psample events" ${ovs_dir}/stdout ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening for psample events" "${ovs_dir}"/stdout In openvswitch.sh line 319: ovs_wait grep -q "userspace action command" $ovs_dir/s0.out || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "userspace action command" "$ovs_dir"/s0.out || return 1 In openvswitch.sh line 323: $ovs_dir/stdout || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$ovs_dir"/stdout || return 1 In openvswitch.sh line 325: ovs_wait grep -q "rate:4294967295,group:2,cookie:eeff0c" $ovs_dir/stdout || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "rate:4294967295,group:2,cookie:eeff0c" "$ovs_dir"/stdout || return 1 In openvswitch.sh line 333: which perf >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which perf >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 334: which pahole >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which pahole >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 364: return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$ksft_skip" In openvswitch.sh line 382: ovs_drop_reason_count 0x${ovs_drop_subsys}0001 # OVS_DROP_FLOW_ACTION ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0001 # OVS_DROP_FLOW_ACTION In openvswitch.sh line 399: ovs_drop_reason_count 0x${ovs_drop_subsys}0004 # OVS_DROP_EXPLICIT_ACTION_ERROR ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0004 # OVS_DROP_EXPLICIT_ACTION_ERROR In openvswitch.sh line 407: ovs_drop_reason_count 0x${ovs_drop_subsys}0003 # OVS_DROP_EXPLICIT_ACTION ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0003 # OVS_DROP_EXPLICIT_ACTION In openvswitch.sh line 422: which arping >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which arping >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 437: HW_CLIENT=`ip netns exec client ip link show dev c1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}'` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: HW_CLIENT=$(ip netns exec client ip link show dev c1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}') In openvswitch.sh line 443: HW_SERVER=`ip netns exec server ip link show dev s1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}'` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: HW_SERVER=$(ip netns exec server ip link show dev s1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}') In openvswitch.sh line 463: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 514: if [ $? == 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In openvswitch.sh line 568: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 616: if [ $? == 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In openvswitch.sh line 630: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 707: [ $(python3 $ovs_base/ovs-dpctl.py show nv0 | grep port | \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: [ $(python3 "$ovs_base"/ovs-dpctl.py show nv0 | grep port | \ In openvswitch.sh line 711: [ $(python3 $ovs_base/ovs-dpctl.py show nv0 | grep port | \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: [ $(python3 "$ovs_base"/ovs-dpctl.py show nv0 | grep port | \ In openvswitch.sh line 750: ovs_wait grep -q "listening on upcall packet handler" ${ovs_dir}/left0.out ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening on upcall packet handler" "${ovs_dir}"/left0.out In openvswitch.sh line 754: >$ovs_dir/arping.stdout 2>$ovs_dir/arping.stderr ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >"$ovs_dir"/arping.stdout 2>"$ovs_dir"/arping.stderr In openvswitch.sh line 756: grep -E "MISS upcall\[0/yes\]: .*arp\(sip=172.31.110.1,tip=172.31.110.20,op=1,sha=" $ovs_dir/left0.out >/dev/null 2>&1 || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: grep -E "MISS upcall\[0/yes\]: .*arp\(sip=172.31.110.1,tip=172.31.110.20,op=1,sha=" "$ovs_dir"/left0.out >/dev/null 2>&1 || return 1 In openvswitch.sh line 768: ovs_sbx "${sbxname}" ip -netns ${ns} link add dev ${name} type ${tnl_type} $* || return 1 ^---^ 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. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "${sbxname}" ip -netns "${ns}" link add dev "${name}" type "${tnl_type}" "$*" || return 1 In openvswitch.sh line 770: ovs_sbx "${sbxname}" ip -netns ${ns} addr add dev ${name} ${addr} || return 1 ^---^ 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: ovs_sbx "${sbxname}" ip -netns "${ns}" addr add dev "${name}" "${addr}" || return 1 In openvswitch.sh line 771: ovs_sbx "${sbxname}" ip -netns ${ns} link set dev ${name} mtu 1450 up || return 1 ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "${sbxname}" ip -netns "${ns}" link set dev "${name}" mtu 1450 up || return 1 In openvswitch.sh line 775: which arping >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which arping >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 804: ovs_add_kernel_tunnel "${sbxname}" tns vxlan vxlan${i} ${addr} \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_add_kernel_tunnel "${sbxname}" tns vxlan vxlan"${i}" "${addr}" \ In openvswitch.sh line 805: remote 172.31.110.2 id ${id} dstport 4789 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: remote 172.31.110.2 id "${id}" dstport 4789 \ In openvswitch.sh line 806: ttl ${ttl} df ${df} ${csum} || return 1 ^----^ 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: ttl "${ttl}" df "${df}" "${csum}" || return 1 In openvswitch.sh line 810: ${ovs_dir}/ovs-vxlan0.out || return 1 ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ovs_dir}"/ovs-vxlan0.out || return 1 In openvswitch.sh line 815: arping -I vxlan${i} 172.31.22${i}.2 -c 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: arping -I vxlan"${i}" 172.31.22"${i}".2 -c 1 \ In openvswitch.sh line 816: >${ovs_dir}/arping.stdout 2>${ovs_dir}/arping.stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >"${ovs_dir}"/arping.stdout 2>"${ovs_dir}"/arping.stderr In openvswitch.sh line 827: ${ovs_dir}/ovs-vxlan0.out || return 1 ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ovs_dir}"/ovs-vxlan0.out || return 1 In openvswitch.sh line 856: eval test_${tname} ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: eval test_"${tname}" In openvswitch.sh line 868: read a ^--^ SC2162 (info): read without -r will mangle backslashes. ^-- SC2034 (warning): a appears unused. Verify use (or export if used externally). In openvswitch.sh line 876: rm -rf test_${tname} ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf test_"${tname}" In openvswitch.sh line 885: [ $all_skipped = true ] && [ $exitcode=$ksft_skip ] && exitcode=0 ^-- SC2077 (error): You need spaces around the comparison operator. In openvswitch.sh line 888: $ksft_skip) ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob. In openvswitch.sh line 919: shift $(($OPTIND-1)) ^-----^ SC2004 (style): $/${} is unnecessary on arithmetic variables. For more information: https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ... https://www.shellcheck.net/wiki/SC2077 -- You need spaces around the compar... https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ... ====== Checking the tree with the patch ====== Checking tools/testing/selftests/net/openvswitch/openvswitch.sh - d68fdf4084a3597b59d0d312e2f1fd42dff6491ab389c2e973f83ff27b2cb2bc In openvswitch.sh line 16: if test "X$KSFT_MACHINE_SLOW" == "Xyes"; then ^-------------------^ SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose. Did you mean: if test "$KSFT_MACHINE_SLOW" == "yes"; then In openvswitch.sh line 35: echo "`date +"[%m-%d %H:%M:%S]"` $*" >> ${ovs_dir}/debug.log ^------------------------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$(date +"[%m-%d %H:%M:%S]") $*" >> "${ovs_dir}"/debug.log In openvswitch.sh line 36: [ $VERBOSE = 0 ] || echo $* ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: [ "$VERBOSE" = 0 ] || echo "$*" In openvswitch.sh line 40: info "waiting $WAIT_TIMEOUT s for: $@" ^-- SC2145 (error): Argument mixes string and array. Use * or separate argument. In openvswitch.sh line 63: ovs_base=`pwd` ^---^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: ovs_base=$(pwd) In openvswitch.sh line 70: NO_BIN=0 ^----^ SC2034 (warning): NO_BIN appears unused. Verify use (or export if used externally). In openvswitch.sh line 74: if [ -e $d ]; then ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ -e "$d" ]; then In openvswitch.sh line 79: ovs_setenv $1 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_setenv "$1" In openvswitch.sh line 83: [ -e ${ovs_dir}/cleanup ] && . "$ovs_dir/cleanup" ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----------------^ SC1091 (info): Not following: ./cleanup: openBinaryFile: does not exist (No such file or directory) Did you mean: [ -e "${ovs_dir}"/cleanup ] && . "$ovs_dir/cleanup" In openvswitch.sh line 87: echo "$1" > ${ovs_dir}/cleanup.tmp ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: echo "$1" > "${ovs_dir}"/cleanup.tmp In openvswitch.sh line 88: cat ${ovs_dir}/cleanup >> ${ovs_dir}/cleanup.tmp ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: cat "${ovs_dir}"/cleanup >> "${ovs_dir}"/cleanup.tmp In openvswitch.sh line 89: mv ${ovs_dir}/cleanup.tmp ${ovs_dir}/cleanup ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mv "${ovs_dir}"/cleanup.tmp "${ovs_dir}"/cleanup In openvswitch.sh line 93: sandbox=$1 ^-----^ SC2034 (warning): sandbox appears unused. Verify use (or export if used externally). In openvswitch.sh line 97: test -e ${ovs_dir}/cleanup || : > ${ovs_dir}/cleanup ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: test -e "${ovs_dir}"/cleanup || : > "${ovs_dir}"/cleanup In openvswitch.sh line 101: if test "X$2" != X; then ^---^ SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose. Did you mean: if test "$2" != ""; then In openvswitch.sh line 102: (ovs_setenv $1; shift; ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: (ovs_setenv "$1"; shift; In openvswitch.sh line 103: info "run cmd: $@"; "$@" >> ${ovs_dir}/debug.log) ^-- SC2145 (error): Argument mixes string and array. Use * or separate argument. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: info "run cmd: $@"; "$@" >> "${ovs_dir}"/debug.log) In openvswitch.sh line 105: ovs_setenv $1 ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_setenv "$1" In openvswitch.sh line 113: ovs_sbx "$sbxname" python3 $ovs_base/ovs-dpctl.py add-dp $* ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$sbxname" python3 "$ovs_base"/ovs-dpctl.py add-dp "$*" In openvswitch.sh line 120: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py add-if \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py add-if \ In openvswitch.sh line 123: python3 $ovs_base/ovs-dpctl.py add-if \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: python3 "$ovs_base"/ovs-dpctl.py add-if \ In openvswitch.sh line 124: -u -t "$2" "$3" "$4" >$ovs_dir/$4.out 2>$ovs_dir/$4.err & ^------^ 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. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -u -t "$2" "$3" "$4" >"$ovs_dir"/"$4".out 2>"$ovs_dir"/"$4".err & In openvswitch.sh line 132: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py del-if "$2" "$3" || return 1 ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py del-if "$2" "$3" || return 1 In openvswitch.sh line 141: $* >> $ovs_dir/stdout 2>> $ovs_dir/stderr & ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: $* >> "$ovs_dir"/stdout 2>> "$ovs_dir"/stderr & In openvswitch.sh line 143: ip netns exec $netns $* >> $ovs_dir/stdout 2>> $ovs_dir/stderr & ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- 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: ip netns exec "$netns" "$*" >> "$ovs_dir"/stdout 2>> "$ovs_dir"/stderr & In openvswitch.sh line 152: ovs_netns_spawn_daemon $sbx "_default" $* ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_netns_spawn_daemon "$sbx" "_default" "$*" In openvswitch.sh line 176: if [ $TRACING -eq 1 ]; then ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: if [ "$TRACING" -eq 1 ]; then In openvswitch.sh line 178: ovs_wait grep -q "listening on any" ${ovs_dir}/stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening on any" "${ovs_dir}"/stderr In openvswitch.sh line 186: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py add-flow "$2" "$3" "$4" ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py add-flow "$2" "$3" "$4" In openvswitch.sh line 187: if [ $? -ne 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. In openvswitch.sh line 196: ovs_sbx "$1" python3 $ovs_base/ovs-dpctl.py del-flows "$2" ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "$1" python3 "$ovs_base"/ovs-dpctl.py del-flows "$2" In openvswitch.sh line 204: perf record -a -q -e skb:kfree_skb -o ${ovs_dir}/perf.data $* \ ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: perf record -a -q -e skb:kfree_skb -o "${ovs_dir}"/perf.data "$*" \ In openvswitch.sh line 205: >> ${ovs_dir}/stdout 2>> ${ovs_dir}/stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >> "${ovs_dir}"/stdout 2>> "${ovs_dir}"/stderr In openvswitch.sh line 213: local perf_output=`perf script -i ${ovs_dir}/perf.data -F trace:event,trace` ^---------^ SC2155 (warning): Declare and assign separately to avoid masking return values. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: local perf_output=$(perf script -i "${ovs_dir}"/perf.data -F trace:event,trace) In openvswitch.sh line 216: return `echo "$perf_output" | grep "$pattern" | wc -l` ^-- SC2046 (warning): Quote this to prevent word splitting. ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. ^-------------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: return $(echo "$perf_output" | grep "$pattern" | wc -l) In openvswitch.sh line 223: ovs_add_flow $@ &> /dev/null $@ && return 1 ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. ^-- SC2068 (error): Double quote array expansions to avoid re-splitting elements. In openvswitch.sh line 267: return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$ksft_skip" In openvswitch.sh line 281: set -- $testcase; ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: set -- "$testcase"; In openvswitch.sh line 282: ovs_test_flow_fails "test_psample" psample $min_key $2 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_test_flow_fails "test_psample" psample "$min_key" "$2" In openvswitch.sh line 306: $ovs_dir/s0.out | cut -d ":" -f 2 | tr -d ' ') ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$ovs_dir"/s0.out | cut -d ":" -f 2 | tr -d ' ') In openvswitch.sh line 313: ovs_spawn_daemon "test_psample" python3 $ovs_base/ovs-dpctl.py psample-events ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_spawn_daemon "test_psample" python3 "$ovs_base"/ovs-dpctl.py psample-events In openvswitch.sh line 314: ovs_wait grep -q "listening for psample events" ${ovs_dir}/stdout ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening for psample events" "${ovs_dir}"/stdout In openvswitch.sh line 320: ovs_wait grep -q "userspace action command" $ovs_dir/s0.out || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "userspace action command" "$ovs_dir"/s0.out || return 1 In openvswitch.sh line 324: $ovs_dir/stdout || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "$ovs_dir"/stdout || return 1 In openvswitch.sh line 326: ovs_wait grep -q "rate:4294967295,group:2,cookie:eeff0c" $ovs_dir/stdout || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "rate:4294967295,group:2,cookie:eeff0c" "$ovs_dir"/stdout || return 1 In openvswitch.sh line 334: which perf >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which perf >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 335: which pahole >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which pahole >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 365: return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: return "$ksft_skip" In openvswitch.sh line 383: ovs_drop_reason_count 0x${ovs_drop_subsys}0001 # OVS_DROP_FLOW_ACTION ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0001 # OVS_DROP_FLOW_ACTION In openvswitch.sh line 400: ovs_drop_reason_count 0x${ovs_drop_subsys}0004 # OVS_DROP_EXPLICIT_ACTION_ERROR ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0004 # OVS_DROP_EXPLICIT_ACTION_ERROR In openvswitch.sh line 408: ovs_drop_reason_count 0x${ovs_drop_subsys}0003 # OVS_DROP_EXPLICIT_ACTION ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_drop_reason_count 0x"${ovs_drop_subsys}"0003 # OVS_DROP_EXPLICIT_ACTION In openvswitch.sh line 423: which arping >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which arping >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 438: HW_CLIENT=`ip netns exec client ip link show dev c1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}'` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: HW_CLIENT=$(ip netns exec client ip link show dev c1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}') In openvswitch.sh line 444: HW_SERVER=`ip netns exec server ip link show dev s1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}'` ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`. Did you mean: HW_SERVER=$(ip netns exec server ip link show dev s1 | grep -E 'link/ether [0-9a-f:]+' | awk '{print $2;}') In openvswitch.sh line 464: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 515: if [ $? == 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In openvswitch.sh line 569: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 617: if [ $? == 0 ]; then ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In openvswitch.sh line 631: which nc >/dev/null 2>/dev/null || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which nc >/dev/null 2>/dev/null || return "$ksft_skip" In openvswitch.sh line 708: [ $(python3 $ovs_base/ovs-dpctl.py show nv0 | grep port | \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: [ $(python3 "$ovs_base"/ovs-dpctl.py show nv0 | grep port | \ In openvswitch.sh line 712: [ $(python3 $ovs_base/ovs-dpctl.py show nv0 | grep port | \ ^-- SC2046 (warning): Quote this to prevent word splitting. ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-------^ SC2126 (style): Consider using 'grep -c' instead of 'grep|wc -l'. Did you mean: [ $(python3 "$ovs_base"/ovs-dpctl.py show nv0 | grep port | \ In openvswitch.sh line 751: ovs_wait grep -q "listening on upcall packet handler" ${ovs_dir}/left0.out ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait grep -q "listening on upcall packet handler" "${ovs_dir}"/left0.out In openvswitch.sh line 755: >$ovs_dir/arping.stdout 2>$ovs_dir/arping.stderr ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >"$ovs_dir"/arping.stdout 2>"$ovs_dir"/arping.stderr In openvswitch.sh line 757: grep -E "MISS upcall\[0/yes\]: .*arp\(sip=172.31.110.1,tip=172.31.110.20,op=1,sha=" $ovs_dir/left0.out >/dev/null 2>&1 || return 1 ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: grep -E "MISS upcall\[0/yes\]: .*arp\(sip=172.31.110.1,tip=172.31.110.20,op=1,sha=" "$ovs_dir"/left0.out >/dev/null 2>&1 || return 1 In openvswitch.sh line 769: ovs_sbx "${sbxname}" ip -netns ${ns} link add dev ${name} type ${tnl_type} $* || return 1 ^---^ 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. ^-- SC2048 (warning): Use "$@" (with quotes) to prevent whitespace problems. ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "${sbxname}" ip -netns "${ns}" link add dev "${name}" type "${tnl_type}" "$*" || return 1 In openvswitch.sh line 771: ovs_sbx "${sbxname}" ip -netns ${ns} addr add dev ${name} ${addr} || return 1 ^---^ 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: ovs_sbx "${sbxname}" ip -netns "${ns}" addr add dev "${name}" "${addr}" || return 1 In openvswitch.sh line 772: ovs_sbx "${sbxname}" ip -netns ${ns} link set dev ${name} mtu 1450 up || return 1 ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_sbx "${sbxname}" ip -netns "${ns}" link set dev "${name}" mtu 1450 up || return 1 In openvswitch.sh line 776: which arping >/dev/null 2>&1 || return $ksft_skip ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: which arping >/dev/null 2>&1 || return "$ksft_skip" In openvswitch.sh line 805: ovs_add_kernel_tunnel "${sbxname}" tns vxlan vxlan${i} ${addr} \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_add_kernel_tunnel "${sbxname}" tns vxlan vxlan"${i}" "${addr}" \ In openvswitch.sh line 806: remote 172.31.110.2 id ${id} dstport 4789 \ ^---^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: remote 172.31.110.2 id "${id}" dstport 4789 \ In openvswitch.sh line 807: ttl ${ttl} df ${df} ${csum} || return 1 ^----^ 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: ttl "${ttl}" df "${df}" "${csum}" || return 1 In openvswitch.sh line 811: ${ovs_dir}/ovs-vxlan0.out || return 1 ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ovs_dir}"/ovs-vxlan0.out || return 1 In openvswitch.sh line 816: arping -I vxlan${i} 172.31.22${i}.2 -c 1 \ ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: arping -I vxlan"${i}" 172.31.22"${i}".2 -c 1 \ In openvswitch.sh line 817: >${ovs_dir}/arping.stdout 2>${ovs_dir}/arping.stderr ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: >"${ovs_dir}"/arping.stdout 2>"${ovs_dir}"/arping.stderr In openvswitch.sh line 828: ${ovs_dir}/ovs-vxlan0.out || return 1 ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ovs_dir}"/ovs-vxlan0.out || return 1 In openvswitch.sh line 845: python3 $ovs_base/ovs-dpctl.py \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: python3 "$ovs_base"/ovs-dpctl.py \ In openvswitch.sh line 846: add-dp dp-${tun_type} || return 1 ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: add-dp dp-"${tun_type}" || return 1 In openvswitch.sh line 849: python3 $ovs_base/ovs-dpctl.py \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: python3 "$ovs_base"/ovs-dpctl.py \ In openvswitch.sh line 850: add-if --no-lwt -t ${tun_type} \ ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: add-if --no-lwt -t "${tun_type}" \ In openvswitch.sh line 851: dp-${tun_type} ovs-${tun_type}0 || return 1 ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: dp-"${tun_type}" ovs-"${tun_type}"0 || return 1 In openvswitch.sh line 854: ovs-${tun_type}0 >/dev/null 2>&1 || return 1 ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs-"${tun_type}"0 >/dev/null 2>&1 || return 1 In openvswitch.sh line 858: python3 $ovs_base/ovs-dpctl.py \ ^-------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: python3 "$ovs_base"/ovs-dpctl.py \ In openvswitch.sh line 859: del-dp dp-${tun_type} & ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: del-dp dp-"${tun_type}" & In openvswitch.sh line 864: ovs_wait dev_removed dp-${tun_type} || return 1 ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait dev_removed dp-"${tun_type}" || return 1 In openvswitch.sh line 865: ovs_wait dev_removed ovs-${tun_type}0 || return 1 ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ovs_wait dev_removed ovs-"${tun_type}"0 || return 1 In openvswitch.sh line 893: eval test_${tname} ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: eval test_"${tname}" In openvswitch.sh line 905: read a ^--^ SC2162 (info): read without -r will mangle backslashes. ^-- SC2034 (warning): a appears unused. Verify use (or export if used externally). In openvswitch.sh line 913: rm -rf test_${tname} ^------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: rm -rf test_"${tname}" In openvswitch.sh line 922: [ $all_skipped = true ] && [ $exitcode=$ksft_skip ] && exitcode=0 ^-- SC2077 (error): You need spaces around the comparison operator. In openvswitch.sh line 925: $ksft_skip) ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob. In openvswitch.sh line 956: shift $(($OPTIND-1)) ^-----^ SC2004 (style): $/${} is unnecessary on arithmetic variables. For more information: https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ... https://www.shellcheck.net/wiki/SC2077 -- You need spaces around the compar... https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ...