In /usr/bin/jw line 8: SGML_HELP_MESSAGE="Usage: `basename $0` [<options>] <sgml_file>\n\ ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_HELP_MESSAGE="Usage: $(basename "$0") [<options>] <sgml_file>\n\ In /usr/bin/jw line 62: if [ $? -eq 0 ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/jw line 64: SGML_CONF=`sgmlwhich` ^---------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: SGML_CONF=$(sgmlwhich) In /usr/bin/jw line 84: SGML_BASE_DIR=`grep $RE $SGML_CONF | sed "s/$RE//"` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_BASE_DIR=$(grep "$RE" $SGML_CONF | sed "s/$RE//") In /usr/bin/jw line 86: SGML_CATALOGS_DIR=`grep $RE $SGML_CONF | sed "s/$RE//"` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_CATALOGS_DIR=$(grep "$RE" $SGML_CONF | sed "s/$RE//") In /usr/bin/jw line 107: SGML_CURRENT_DIRECTORY=`pwd` ^---^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: SGML_CURRENT_DIRECTORY=$(pwd) In /usr/bin/jw line 181: print|html) echo "The marked section named \"$2\" is reserved for internal use by `basename $0`." >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: print|html) echo "The marked section named \"$2\" is reserved for internal use by $(basename "$0")." >&2 In /usr/bin/jw line 190: printf "$SGML_WARNINGS_LIST\n" ^---------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 198: printf "$SGML_WARNINGS_LIST\n" >&2 ^---------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 205: printf "$SGML_ERRORS_LIST\n" ^-------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 213: printf "$SGML_ERRORS_LIST\n" >&2 ^-------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 218: -h|--help) printf "`basename $0` - Jade Wrapper\n\n" ^-- SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: -h|--help) printf "$(basename "$0") - Jade Wrapper\n\n" In /usr/bin/jw line 219: printf "$SGML_HELP_MESSAGE\n" ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 222: -v|--version) printf "$SGML_VERSION_MESSAGE\n" ^-----------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 225: -*) printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 236: printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 246: printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 249: if [ ! -s $SGML_FRONTEND ] ^------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ ! -s "$SGML_FRONTEND" ] In /usr/bin/jw line 251: echo "`basename $0`: There is no frontend called \"$SGML_FRONTEND\"." >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): There is no frontend called \"$SGML_FRONTEND\"." >&2 In /usr/bin/jw line 258: printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 261: if [ ! -s $SGML_BACKEND ] ^-----------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ ! -s "$SGML_BACKEND" ] In /usr/bin/jw line 263: echo "`basename $0`: There is no backend called \"$SGML_BACKEND\"." >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): There is no backend called \"$SGML_BACKEND\"." >&2 In /usr/bin/jw line 270: printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 273: if [ ! -s $SGML_FILE ] ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ ! -s "$SGML_FILE" ] In /usr/bin/jw line 275: echo "`basename $0`: Cannot open \"$SGML_FILE\"." >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): Cannot open \"$SGML_FILE\"." >&2 In /usr/bin/jw line 280: SGML_FILE_NAME=`basename $SGML_FILE` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_FILE_NAME=$(basename "$SGML_FILE") In /usr/bin/jw line 284: SGML_XML=`head "$SGML_FILE" | grep "<?xml.*?>" | wc -l` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^--------------^ SC2126: Consider using grep -c instead of grep|wc -l. Did you mean: SGML_XML=$(head "$SGML_FILE" | grep "<?xml.*?>" | wc -l) In /usr/bin/jw line 285: if [ $SGML_XML -eq 1 ]; then ^-------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ "$SGML_XML" -eq 1 ]; then In /usr/bin/jw line 292: if [ "$SGML_DECL" = "" -a "$SGML_XML" = "xml" ] ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/jw line 299: SGML_NORM=`which sgmlnorm 2>/dev/null` ^--------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: SGML_NORM=$(which sgmlnorm 2>/dev/null) In /usr/bin/jw line 300: if [ -z "SGML_NORM" ] ^-------^ SC2157: Argument to -z is always false due to literal strings. In /usr/bin/jw line 302: SGML_NORM=`which osgmlnorm 2>/dev/null` ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: SGML_NORM=$(which osgmlnorm 2>/dev/null) In /usr/bin/jw line 309: SGML_CENTRALIZED_CATALOG=`sh $SGML_FRONTEND centralized-catalog` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_CENTRALIZED_CATALOG=$(sh "$SGML_FRONTEND" centralized-catalog) In /usr/bin/jw line 310: if [ -s $SGML_CENTRALIZED_CATALOG ] ^-----------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ -s "$SGML_CENTRALIZED_CATALOG" ] In /usr/bin/jw line 314: SGML_CATALOG_FILES=`find $SGML_BASE_DIR -name catalog` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_CATALOG_FILES=$(find "$SGML_BASE_DIR" -name catalog) In /usr/bin/jw line 315: SGML_CATALOG_FILES=`echo "$SGML_CATALOG_FILES" | tr [:space:] :` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------^ SC2060: Quote parameters to tr to prevent glob expansion. Did you mean: SGML_CATALOG_FILES=$(echo "$SGML_CATALOG_FILES" | tr [:space:] :) In /usr/bin/jw line 322: SGML_CATALOG_FILES=`echo "$SGML_CATALOG_FILES" | sed 's/^://;s/:$//'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: SGML_CATALOG_FILES=$(echo "$SGML_CATALOG_FILES" | sed 's/^://;s/:$//') In /usr/bin/jw line 325: echo "`basename $0`: Please specify at least one catalog" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): Please specify at least one catalog" >&2 In /usr/bin/jw line 340: if [ "$SGML_STYLESHEET" = "default" -o "$SGML_STYLESHEET" = "none" ] ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined. In /usr/bin/jw line 343: SGML_STYLESHEET=`sh $SGML_FRONTEND style-sheet` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: SGML_STYLESHEET=$(sh "$SGML_FRONTEND" style-sheet) In /usr/bin/jw line 346: then exit `expr 7 + $SGML_RETURN` ^---------------------^ SC2046: Quote this to prevent word splitting. ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^--^ SC2003: expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]]. Did you mean: then exit $(expr 7 + $SGML_RETURN) In /usr/bin/jw line 351: echo "`basename $0`: Please specify at least one stylesheet" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): Please specify at least one stylesheet" >&2 In /usr/bin/jw line 380: if [ $? -eq 0 ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/jw line 385: if [ $? -eq 0 ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/jw line 389: echo "`basename $0`: No parser available" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): No parser available" >&2 In /usr/bin/jw line 395: if [ $? -ne 0 ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/jw line 397: echo "`basename $0`: parser $SGML_JADE is not available" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): parser $SGML_JADE is not available" >&2 In /usr/bin/jw line 405: printf "$SGML_HELP_MESSAGE\n" >&2 ^--------------------^ SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". In /usr/bin/jw line 408: if [ ! -d $SGML_OUTPUT_DIRECTORY ] ^--------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ ! -d "$SGML_OUTPUT_DIRECTORY" ] In /usr/bin/jw line 410: mkdir $SGML_OUTPUT_DIRECTORY 2>/dev/null ^--------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: mkdir "$SGML_OUTPUT_DIRECTORY" 2>/dev/null In /usr/bin/jw line 411: if [ $? -ne 0 ] ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/jw line 413: echo "`basename $0`: Could not create \"$SGML_OUTPUT_DIRECTORY\" output directory" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$(basename "$0"): Could not create \"$SGML_OUTPUT_DIRECTORY\" output directory" >&2 In /usr/bin/jw line 422: echo "Using catalogs: `echo $SGML_CATALOG_FILES | sed 's/:/, /g'`" ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-----------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "Using catalogs: $(echo "$SGML_CATALOG_FILES" | sed 's/:/, /g')" In /usr/bin/jw line 425: cd $SGML_OUTPUT_DIRECTORY ^-----------------------^ SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails. ^--------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: cd "$SGML_OUTPUT_DIRECTORY" || exit In /usr/bin/jw line 428: NOCHUNKS=`echo $SGML_OPTIONS | grep nochunks` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-----------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: NOCHUNKS=$(echo "$SGML_OPTIONS" | grep nochunks) In /usr/bin/jw line 431: sh $SGML_BACKEND ^-----------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: sh "$SGML_BACKEND" In /usr/bin/jw line 433: sh $SGML_BACKEND >$SGML_FILE_NAME.html ^-----------^ SC2086: Double quote to prevent globbing and word splitting. ^-------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: sh "$SGML_BACKEND" >"$SGML_FILE_NAME".html In /usr/bin/jw line 436: cd $SGML_CURRENT_DIRECTORY ^------------------------^ SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails. ^---------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: cd "$SGML_CURRENT_DIRECTORY" || exit In /usr/bin/jw line 439: then exit `expr 7 + $SGML_RETURN` ^---------------------^ SC2046: Quote this to prevent word splitting. ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^--^ SC2003: expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]]. Did you mean: then exit $(expr 7 + $SGML_RETURN) For more information: https://www.shellcheck.net/wiki/SC2157 -- Argument to -z is always false du... https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt... https://www.shellcheck.net/wiki/SC2060 -- Quote parameters to tr to prevent...