In /usr/bin/getbuildlog line 23: PROGNAME=`basename $0` ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: PROGNAME=$(basename "$0") In /usr/bin/getbuildlog line 66: [ $# -ge 1 ] && [ $# -le 3 ] || { usage && exit 1; } ^-- SC2015: Note that A && B || C is not if-then-else. C may run when A is true. In /usr/bin/getbuildlog line 76: ESCAPED_PACKAGE=`echo "$PACKAGE" | sed -e 's/\+/\\\+/g'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: ESCAPED_PACKAGE=$(echo "$PACKAGE" | sed -e 's/\+/\\\+/g') In /usr/bin/getbuildlog line 81: VERSION=[:~+.[:alnum:]-]+ ^---------------^ SC2125: Brace expansions and globs are literal in assignments. Quote it or use an array. In /usr/bin/getbuildlog line 84: VERSION=[:~+.[:alnum:]-]+ ^---------------^ SC2125: Brace expansions and globs are literal in assignments. Quote it or use an array. In /usr/bin/getbuildlog line 96: wget -q -O $ALL_LOGS "$BASE/status/logs.php?pkg=$PACKAGE" ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: wget -q -O "$ALL_LOGS" "$BASE/status/logs.php?pkg=$PACKAGE" In /usr/bin/getbuildlog line 100: sed -i -e "s/href=\"/\nhref=\"/g" $ALL_LOGS ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: sed -i -e "s/href=\"/\nhref=\"/g" "$ALL_LOGS" In /usr/bin/getbuildlog line 102: sed -i -e "s/&/\&/g" -e "s/%2B/\+/g" -e "s/%3A/:/g" -e "s/%7E/~/g" $ALL_LOGS ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: sed -i -e "s/&/\&/g" -e "s/%2B/\+/g" -e "s/%3A/:/g" -e "s/%7E/~/g" "$ALL_LOGS" In /usr/bin/getbuildlog line 108: for match in `grep -E -o "$PATTERN" $ALL_LOGS`; do ^-- SC2013: To read lines rather than words, pipe/redirect to a 'while read' loop. ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: for match in $(grep -E -o "$PATTERN" "$ALL_LOGS"); do In /usr/bin/getbuildlog line 110: echo ${ver%%&*} ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "${ver%%&*}" In /usr/bin/getbuildlog line 124: for match in `grep -E -o "$NEWPATTERN" $ALL_LOGS`; do ^-- SC2013: To read lines rather than words, pipe/redirect to a 'while read' loop. ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: for match in $(grep -E -o "$NEWPATTERN" "$ALL_LOGS"); do In /usr/bin/getbuildlog line 129: match=`echo $match | sed -e 's/\+/%2B/g'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^----^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: match=$(echo "$match" | sed -e 's/\+/%2B/g') In /usr/bin/getbuildlog line 143: rm -f $ALL_LOGS ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: rm -f "$ALL_LOGS" For more information: https://www.shellcheck.net/wiki/SC2125 -- Brace expansions and globs are li... https://www.shellcheck.net/wiki/SC2013 -- To read lines rather than words, ... https://www.shellcheck.net/wiki/SC2015 -- Note that A && B || C is not if-t...