In /usr/bin/yelp-new line 22: line=" "`basename "$1" | sed -e 's/\.'$2'$//'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: line=" "$(basename "$1" | sed -e 's/\.'"$2"'$//') In /usr/bin/yelp-new line 23: desc=`cat "$f" | grep '<\?yelp-tmpl-desc' | sed -e 's/<?yelp-tmpl-desc //' -e 's/?>$//'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^--^ SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead. Did you mean: desc=$(cat "$f" | grep '<\?yelp-tmpl-desc' | sed -e 's/<?yelp-tmpl-desc //' -e 's/?>$//') In /usr/bin/yelp-new line 40: if [ -f *.page.tmpl ]; then ^---------^ SC2144: -f doesn't work with globs. Use a for loop. In /usr/bin/yelp-new line 47: if [ -f ${tmpldir}*.page ]; then ^--------------^ SC2144: -f doesn't work with globs. Use a for loop. In /usr/bin/yelp-new line 50: for f in ${tmpldir}*.page; do ^--------^ SC2231: Quote expansions in this for loop glob to prevent wordsplitting, e.g. "$dir"/*.txt . In /usr/bin/yelp-new line 54: if [ -f *.docbook.tmpl ]; then ^------------^ SC2144: -f doesn't work with globs. Use a for loop. In /usr/bin/yelp-new line 61: if [ -f ${tmpldir}*.docbook ]; then ^-----------------^ SC2144: -f doesn't work with globs. Use a for loop. In /usr/bin/yelp-new line 64: for f in ${tmpldir}*.docbook; do ^--------^ SC2231: Quote expansions in this for loop glob to prevent wordsplitting, e.g. "$dir"/*.txt . In /usr/bin/yelp-new line 94: if [ $(yelp_get_extension ${1}) = "tmpl" -a -f "${1}" ]; then ^------------------------^ SC2046: Quote this to prevent word splitting. ^--^ SC2086: Double quote to prevent globbing and word splitting. ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. Did you mean: if [ $(yelp_get_extension "${1}") = "tmpl" -a -f "${1}" ]; then In /usr/bin/yelp-new line 96: outext="."$(yelp_get_extension $(basename "${1}" ".tmpl")) ^------------------------^ SC2046: Quote this to prevent word splitting. In /usr/bin/yelp-new line 116: username=`git config user.name` ^--------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: username=$(git config user.name) In /usr/bin/yelp-new line 117: useremail=`git config user.email` ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: useremail=$(git config user.email) In /usr/bin/yelp-new line 119: if [ "x$username" = "x" -a "x$useremail" = "x" ]; then ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/yelp-new line 121: username=`bzr whoami | sed -e 's/ <.*//'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: username=$(bzr whoami | sed -e 's/ <.*//') In /usr/bin/yelp-new line 122: useremail=`bzr whoami --email` ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: useremail=$(bzr whoami --email) In /usr/bin/yelp-new line 125: if [ "x$username" = "x" -a "x$useremail" = "x" ]; then ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/yelp-new line 137: if [ "."$(yelp_get_extension "${2}") = "$spec" ]; then ^--------------------------^ SC2046: Quote this to prevent word splitting. In /usr/bin/yelp-new line 139: elif [ "."$(yelp_get_extension "${2}") = "$outext" ]; then ^--------------------------^ SC2046: Quote this to prevent word splitting. In /usr/bin/yelp-new line 144: elif [ "."$(yelp_get_extension ${2}) = "$outext" ]; then ^------------------------^ SC2046: Quote this to prevent word splitting. ^--^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: elif [ "."$(yelp_get_extension "${2}") = "$outext" ]; then In /usr/bin/yelp-new line 153: cat "$infile" | grep -v '<\?yelp-tmpl-desc' | sed \ ^-------^ SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead. In /usr/bin/yelp-new line 155: -e s/@DATE@/`date +%Y-%m-%d`/ \ ^--------------^ SC2046: Quote this to prevent word splitting. ^--------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: -e s/@DATE@/$(date +%Y-%m-%d)/ \ In /usr/bin/yelp-new line 156: -e s/@YEAR@/`date +%Y`/ \ ^--------^ SC2046: Quote this to prevent word splitting. ^--------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: -e s/@YEAR@/$(date +%Y)/ \ For more information: https://www.shellcheck.net/wiki/SC2144 -- -f doesn't work with globs. Use a... https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt... https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...