In /usr/bin/ucfr line 62: old_pkg=$(egrep "[[:space:]]${real_conf_file_re}$" "$statedir/registry" | \ ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. In /usr/bin/ucfr line 64: if [ "$pkg" != "$old_pkg" ]; then ^--^ SC2154: pkg is referenced but not assigned. In /usr/bin/ucfr line 76: cp -f "${statedir}/registry.${i}" "${statedir}/registry.$(($i + 1))" ^-- SC2004: $/${} is unnecessary on arithmetic variables. In /usr/bin/ucfr line 78: echo cp -f "${statedir}/registry.${i}" "${statedir}/registry.$(($i + 1))" ^-- SC2004: $/${} is unnecessary on arithmetic variables. In /usr/bin/ucfr line 94: egrep -v "[[:space:]]${real_conf_file_re}$" "$statedir/registry" > \ ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. In /usr/bin/ucfr line 111: old_pkg=$(egrep "[[:space:]]${real_conf_file_re}$" "$statedir/registry" | \ ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. In /usr/bin/ucfr line 116: echo >&2 "$progname: Attempt from package $pkg to take ${real_conf_file} away from package $old_pkg"; ^---------------^ SC2154: real_conf_file is referenced but not assigned. In /usr/bin/ucfr line 132: "${statedir}/registry.$(($i + 1))" ^-- SC2004: $/${} is unnecessary on arithmetic variables. In /usr/bin/ucfr line 135: "${statedir}/registry.$(($i + 1))" ^-- SC2004: $/${} is unnecessary on arithmetic variables. In /usr/bin/ucfr line 152: egrep -v "[[:space:]]${real_conf_file_re}$" "$statedir/registry" > \ ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. In /usr/bin/ucfr line 200: DEBUG=0 ^---^ SC2034: DEBUG appears unused. Verify use (or export if used externally). In /usr/bin/ucfr line 203: THREEWAY= ^------^ SC2034: THREEWAY appears unused. Verify use (or export if used externally). In /usr/bin/ucfr line 212: if [ $? != 0 ] ; then ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. In /usr/bin/ucfr line 261: setq real_conf_file "$(readlink -q -m $conf_file)" "The (real) Configuration file"; ^--------^ SC2154: conf_file is referenced but not assigned. ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: setq real_conf_file "$(readlink -q -m "$conf_file")" "The (real) Configuration file"; In /usr/bin/ucfr line 263: pkg_re="$(echo $pkg | sed -e 's,+,\\+,')" ^----^ SC2034: pkg_re appears unused. Verify use (or export if used externally). ^--^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: pkg_re="$(echo "$pkg" | sed -e 's,+,\\+,')" In /usr/bin/ucfr line 264: conf_file_re="$(echo $conf_file | sed -e 's,+,\\+,')" ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: conf_file_re="$(echo "$conf_file" | sed -e 's,+,\\+,')" In /usr/bin/ucfr line 265: real_conf_file_re="$(echo $real_conf_file | sed -e 's,+,\\+,')" ^-------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: real_conf_file_re="$(echo "$real_conf_file" | sed -e 's,+,\\+,')" In /usr/bin/ucfr line 279: . /etc/ucf.conf ^-----------^ SC1091: Not following: /etc/ucf.conf was not specified as input (see shellcheck -x). In /usr/bin/ucfr line 287: elif [ ! "x$conf_state_dir" = "x" ]; then ^-------------^ SC2154: conf_state_dir is referenced but not assigned. In /usr/bin/ucfr line 299: if [ -e "$statedir/registry" -a ! -w "$statedir/registry" ]; then ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/ucfr line 321: count=$(egrep --count "[[:space:]]${real_conf_file_re}$" "$statedir/registry") || true ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. In /usr/bin/ucfr line 325: egrep "[[:space:]]${real_conf_file_re}$" "$statedir/registry"; ^---^ SC2196: egrep is non-standard and deprecated. Use grep -E instead. For more information: https://www.shellcheck.net/wiki/SC2034 -- DEBUG appears unused. Verify use ... https://www.shellcheck.net/wiki/SC2154 -- conf_file is referenced but not a... https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...