In /usr/bin/arch-test line 55: HELPER_F="$(basename $HELPERS$1)" ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: HELPER_F="$(basename $HELPERS"$1")" In /usr/bin/arch-test line 57: trap "rm '$CHROOT/$HELPER_F'" 0 ^-----^ SC2064: Use single quotes, otherwise this expands now rather than when signalled. ^-------^ SC2064: Use single quotes, otherwise this expands now rather than when signalled. In /usr/bin/arch-test line 58: MSG=`chroot "$CHROOT" /"$HELPER_F" 2>/dev/null` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: MSG=$(chroot "$CHROOT" /"$HELPER_F" 2>/dev/null) In /usr/bin/arch-test line 60: MSG=`$HELPERS$1 2>/dev/null` ^----------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: MSG=$($HELPERS"$1" 2>/dev/null) In /usr/bin/arch-test line 62: if [ $? -eq 0 -a "x$MSG" = "xok" ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/arch-test line 68: for x in $HELPERS* ^------^ SC2231: Quote expansions in this for loop glob to prevent wordsplitting, e.g. "$dir"/*.txt . In /usr/bin/arch-test line 72: MSG=`"$x" 2>/dev/null|tr -d '\r'` ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: MSG=$("$x" 2>/dev/null|tr -d '\r') In /usr/bin/arch-test line 73: if [ $? -eq 0 -a "x$MSG" = "xok" ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. For more information: https://www.shellcheck.net/wiki/SC2064 -- Use single quotes, otherwise this... https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q... https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...