In /usr/bin/cgal_create_CMakeLists line 54: for LINE in `cat $OPTIONS_FILE`; 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 LINE in $(cat "$OPTIONS_FILE"); do In /usr/bin/cgal_create_CMakeLists line 58: next_cgal_component=`echo $LINE | grep -v "#" | grep CGAL_COMPONENT` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: next_cgal_component=$(echo "$LINE" | grep -v "#" | grep CGAL_COMPONENT) In /usr/bin/cgal_create_CMakeLists line 59: if [ ! -z "$next_cgal_component" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 71: next_boost_component=`echo $LINE | grep -v "#" | grep BOOST_COMPONENT` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: next_boost_component=$(echo "$LINE" | grep -v "#" | grep BOOST_COMPONENT) In /usr/bin/cgal_create_CMakeLists line 72: if [ ! -z "$next_boost_component" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 114: if [ ! -z "$CGAL_COMPONENTS" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 154: COMPONENT=`echo $cgal_component | tr '[:upper:]' '[:lower:]'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: COMPONENT=$(echo "$cgal_component" | tr '[:upper:]' '[:lower:]') In /usr/bin/cgal_create_CMakeLists line 188: if [ ! -z "$BOOST_COMPONENTS" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 235: if [ ! -z "$PACKAGES" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 269: if [ ! -z "$BOOST_COMPONENTS" ]; then ^-- SC2236: Use -n instead of ! -z. In /usr/bin/cgal_create_CMakeLists line 280: BOOST_COMPONENT=`echo $boost_component | tr '[:lower:]' '[:upper:]'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^--------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BOOST_COMPONENT=$(echo "$boost_component" | tr '[:lower:]' '[:upper:]') In /usr/bin/cgal_create_CMakeLists line 327: for file in `ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort` ; do ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort) ; do In /usr/bin/cgal_create_CMakeLists line 329: BASE=`basename $file .cc` ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$file" .cc) In /usr/bin/cgal_create_CMakeLists line 330: BASE=`basename $BASE .cp` ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cp) In /usr/bin/cgal_create_CMakeLists line 331: BASE=`basename $BASE .cxx` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cxx) In /usr/bin/cgal_create_CMakeLists line 332: BASE=`basename $BASE .cpp` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cpp) In /usr/bin/cgal_create_CMakeLists line 333: BASE=`basename $BASE .CPP` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .CPP) In /usr/bin/cgal_create_CMakeLists line 334: BASE=`basename $BASE .c++` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .c++) In /usr/bin/cgal_create_CMakeLists line 335: BASE=`basename $BASE .C` ^-----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .C) In /usr/bin/cgal_create_CMakeLists line 336: egrep '\bmain[ \t]*\(' $file >/dev/null 2>&1 ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: egrep '\bmain[ \t]*\(' "$file" >/dev/null 2>&1 In /usr/bin/cgal_create_CMakeLists line 337: if [ $? -eq 0 ]; then ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/cgal_create_CMakeLists line 383: for file in `ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort` ; do ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort) ; do In /usr/bin/cgal_create_CMakeLists line 401: for file in `ls *.ui 2> /dev/null | sort`; do ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^------------------^ SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.ui 2> /dev/null | sort); do In /usr/bin/cgal_create_CMakeLists line 406: for file in `ls *.qrc 2> /dev/null | sort`; do ^----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------------------^ SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.qrc 2> /dev/null | sort); do In /usr/bin/cgal_create_CMakeLists line 412: for file in `ls include/*.h 2> /dev/null | sort`; do ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-------------------------^ SC2012: Use find instead of ls to better handle non-alphanumeric filenames. Did you mean: for file in $(ls include/*.h 2> /dev/null | sort); do In /usr/bin/cgal_create_CMakeLists line 413: BASE=`basename $file .h` ^-----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$file" .h) In /usr/bin/cgal_create_CMakeLists line 414: egrep 'Q_OBJECT' $file >/dev/null 2>&1 ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: egrep 'Q_OBJECT' "$file" >/dev/null 2>&1 In /usr/bin/cgal_create_CMakeLists line 415: if [ $? -eq 0 ]; then ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/cgal_create_CMakeLists line 420: for file in `ls *.h 2> /dev/null | sort`; do ^--------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-----------------^ SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.h 2> /dev/null | sort); do In /usr/bin/cgal_create_CMakeLists line 421: BASE=`basename $file .h` ^-----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$file" .h) In /usr/bin/cgal_create_CMakeLists line 422: egrep 'Q_OBJECT' $file >/dev/null 2>&1 ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: egrep 'Q_OBJECT' "$file" >/dev/null 2>&1 In /usr/bin/cgal_create_CMakeLists line 423: if [ $? -eq 0 ]; then ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/cgal_create_CMakeLists line 428: for file in `ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort` ; do ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2012: Use find instead of ls to better handle non-alphanumeric filenames. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options. Did you mean: for file in $(ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort) ; do In /usr/bin/cgal_create_CMakeLists line 429: BASE=`basename $file .cc` ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$file" .cc) In /usr/bin/cgal_create_CMakeLists line 430: BASE=`basename $BASE .cp` ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cp) In /usr/bin/cgal_create_CMakeLists line 431: BASE=`basename $BASE .cxx` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cxx) In /usr/bin/cgal_create_CMakeLists line 432: BASE=`basename $BASE .cpp` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .cpp) In /usr/bin/cgal_create_CMakeLists line 433: BASE=`basename $BASE .CPP` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .CPP) In /usr/bin/cgal_create_CMakeLists line 434: BASE=`basename $BASE .c++` ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .c++) In /usr/bin/cgal_create_CMakeLists line 435: BASE=`basename $BASE .C` ^-----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: BASE=$(basename "$BASE" .C) In /usr/bin/cgal_create_CMakeLists line 436: egrep 'Q_OBJECT' $file >/dev/null 2>&1 ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. ^---^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: egrep 'Q_OBJECT' "$file" >/dev/null 2>&1 In /usr/bin/cgal_create_CMakeLists line 437: if [ $? -eq 0 ]; then ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/cgal_create_CMakeLists line 480: echo "Usage: `basename $0` [-s source] [-c cgal-component1:cgal-component2:...] [-b boost-component1:boost-component2:...] [-p] [-o options_file='`pwd`/cgal_cmake_options:$HOME/.cgal_cmake_options_rc'] [-v] [-h]" >&2 ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. ^---^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: echo "Usage: $(basename "$0") [-s source] [-c cgal-component1:cgal-component2:...] [-b boost-component1:boost-component2:...] [-p] [-o options_file='$(pwd)/cgal_cmake_options:$HOME/.cgal_cmake_options_rc'] [-v] [-h]" >&2 In /usr/bin/cgal_create_CMakeLists line 501: OPTIONS_FILE=`pwd`"/cgal_cmake_options" ^---^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: OPTIONS_FILE=$(pwd)"/cgal_cmake_options" In /usr/bin/cgal_create_CMakeLists line 509: case "$OPT" in ^-- SC2213: getopts specified -p, but it's not handled by this 'case'. In /usr/bin/cgal_create_CMakeLists line 575: v) echo "`basename $0` version 0.1" ^-----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: v) echo "$(basename "$0") version 0.1" In /usr/bin/cgal_create_CMakeLists line 585: shift `expr $OPTIND - 1` ^----------------^ 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: shift $(expr $OPTIND - 1) In /usr/bin/cgal_create_CMakeLists line 594: PROJECT=`basename $PWD` ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^--^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: PROJECT=$(basename "$PWD") For more information: https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt... https://www.shellcheck.net/wiki/SC2213 -- getopts specified -p, but it's no... https://www.shellcheck.net/wiki/SC2012 -- Use find instead of ls to better ...