In /usr/bin/xdg-screensaver line 147: [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0; ^----------------------^ SC2086: Double quote to prevent globbing and word splitting. ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: [ "${XDG_UTILS_DEBUG_LEVEL}" -lt "$1" ] && return 0; In /usr/bin/xdg-screensaver line 155: read first rest ^--^ SC2162: read without -r will mangle backslashes. In /usr/bin/xdg-screensaver line 164: binary="`which "$1"`" ^----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: binary="$(which "$1")" In /usr/bin/xdg-screensaver line 165: binary="`readlink -f "$binary"`" ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: binary="$(readlink -f "$binary")" In /usr/bin/xdg-screensaver line 166: base="`basename "$binary"`" ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: base="$(basename "$binary")" In /usr/bin/xdg-screensaver line 178: command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`" ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word)" In /usr/bin/xdg-screensaver line 179: command="`which "$command"`" ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(which "$command")" In /usr/bin/xdg-screensaver line 180: if [ x"`readlink -f "$command"`" = x"$binary" ]; then ^----------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: if [ x"$(readlink -f "$command")" = x"$binary" ]; then In /usr/bin/xdg-screensaver line 194: desktop="`basename "$1"`" ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: desktop="$(basename "$1")" In /usr/bin/xdg-screensaver line 203: if [ -r $dir/applications/$vendor/$app ]; then ^--^ SC2086: Double quote to prevent globbing and word splitting. ^-----^ SC2086: Double quote to prevent globbing and word splitting. ^--^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ -r "$dir"/applications/"$vendor"/"$app" ]; then In /usr/bin/xdg-screensaver line 205: elif [ -r $dir/applnk/$vendor/$app ]; then ^--^ SC2086: Double quote to prevent globbing and word splitting. ^-----^ SC2086: Double quote to prevent globbing and word splitting. ^--^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: elif [ -r "$dir"/applnk/"$vendor"/"$app" ]; then In /usr/bin/xdg-screensaver line 220: command="`grep -E "^Exec(\[[^]=]*])?=" "$file_path" | cut -d= -f 2- | first_word`" ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(grep -E "^Exec(\[[^]=]*])?=" "$file_path" | cut -d= -f 2- | first_word)" In /usr/bin/xdg-screensaver line 221: command="`which "$command"`" ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(which "$command")" In /usr/bin/xdg-screensaver line 231: exit_success() ^-- SC2120: exit_success references arguments, but none are ever passed. In /usr/bin/xdg-screensaver line 250: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 266: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 278: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 290: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 302: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 314: echo "xdg-screensaver: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-screensaver line 334: file=`basename "$1"` ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: file=$(basename "$1") In /usr/bin/xdg-screensaver line 357: DIR=`dirname "$1"` ^------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: DIR=$(dirname "$1") In /usr/bin/xdg-screensaver line 377: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-screensaver line 382: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-screensaver line 387: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-screensaver line 396: if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then ^------------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ "${XDG_UTILS_DEBUG_LEVEL-0}" -lt 1 ]; then In /usr/bin/xdg-screensaver line 401: xdg_redirect_output=" >&2" ^-----------------^ SC2034: xdg_redirect_output appears unused. Verify use (or export if used externally). In /usr/bin/xdg-screensaver line 455: elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; ^-- SC2092: Remove backticks to avoid executing output. ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome; In /usr/bin/xdg-screensaver line 458: elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=enlightenment; ^------^ SC2153: Possible misspelling: DESKTOP may not be assigned, but desktop is. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: elif echo "$DESKTOP" | grep -q '^Enlightenment'; then DE=enlightenment; In /usr/bin/xdg-screensaver line 511: version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: version=$(LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE') In /usr/bin/xdg-screensaver line 512: major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: major=$(echo "$version" | sed 's/KDE.*: \([0-9]\).*/\1/') In /usr/bin/xdg-screensaver line 513: minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: minor=$(echo "$version" | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/') In /usr/bin/xdg-screensaver line 514: release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: release=$(echo "$version" | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/') In /usr/bin/xdg-screensaver line 515: test "$major" -gt 3 && return $1 ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: test "$major" -gt 3 && return "$1" In /usr/bin/xdg-screensaver line 516: test "$minor" -gt 5 && return $1 ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: test "$minor" -gt 5 && return "$1" In /usr/bin/xdg-screensaver line 517: test "$release" -gt 4 && return $1 ^-- SC2086: Double quote to prevent globbing and word splitting. Did you mean: test "$release" -gt 4 && return "$1" In /usr/bin/xdg-screensaver line 538: screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: screensaver_file="/tmp/xdg-screensaver-$USER-"$(echo "$DISPLAY" | sed 's/:/-/g') In /usr/bin/xdg-screensaver line 543: screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's/:/-/g'` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^---------^ SC2046: Quote this to prevent word splitting. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: screensaver_file="$HOME/.xdg-screensaver-"$(echo $(hostname)-"$DISPLAY" | sed 's/:/-/g') In /usr/bin/xdg-screensaver line 545: lockfile_command=`which lockfile 2> /dev/null` ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: lockfile_command=$(which lockfile 2> /dev/null) In /usr/bin/xdg-screensaver line 554: local try ^-------^ SC2039: In POSIX sh, 'local' is undefined. In /usr/bin/xdg-screensaver line 559: try=$(($try+1)) ^--^ SC2004: $/${} is unnecessary on arithmetic variables. In /usr/bin/xdg-screensaver line 630: if [ -n "$DISPLAY" -a "$1" = "suspend" ] ; then ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/xdg-screensaver line 634: tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX) In /usr/bin/xdg-screensaver line 647: tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX) In /usr/bin/xdg-screensaver line 664: xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: xprop_pid=$(grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2) In /usr/bin/xdg-screensaver line 666: if [ -n "$xprop_pid" ] && ps -p "$xprop_pid" 2> /dev/null | grep xprop > /dev/null; then ^-- SC2009: Consider using pgrep instead of grepping ps output. In /usr/bin/xdg-screensaver line 668: kill -s TERM $xprop_pid ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: kill -s TERM "$xprop_pid" In /usr/bin/xdg-screensaver line 673: XPROP=`which xprop 2> /dev/null` ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: XPROP=$(which xprop 2> /dev/null) In /usr/bin/xdg-screensaver line 682: if $XPROP -id $window_id > /dev/null 2> /dev/null; then ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if $XPROP -id "$window_id" > /dev/null 2> /dev/null; then In /usr/bin/xdg-screensaver line 683: DEBUG 3 Window $window_id exists ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: DEBUG 3 Window "$window_id" exists In /usr/bin/xdg-screensaver line 685: DEBUG 3 Window $window_id does not exist ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: DEBUG 3 Window "$window_id" does not exist In /usr/bin/xdg-screensaver line 699: tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX) In /usr/bin/xdg-screensaver line 706: while read wid pid; do ^--^ SC2162: read without -r will mangle backslashes. In /usr/bin/xdg-screensaver line 707: if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then ^-- SC2009: Consider using pgrep instead of grepping ps output. In /usr/bin/xdg-screensaver line 709: if [ $wid = $window_id ] ; then ^--^ SC2086: Double quote to prevent globbing and word splitting. ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: if [ "$wid" = "$window_id" ] ; then In /usr/bin/xdg-screensaver line 716: ) < $screensaver_file > $tmpfile ^---------------^ SC2086: Double quote to prevent globbing and word splitting. ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: ) < "$screensaver_file" > "$tmpfile" In /usr/bin/xdg-screensaver line 727: $XPROP -id $window_id -spy > /dev/null & ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: $XPROP -id "$window_id" -spy > /dev/null & In /usr/bin/xdg-screensaver line 730: echo "$window_id:$xprop_pid" >> $tmpfile ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: echo "$window_id:$xprop_pid" >> "$tmpfile" In /usr/bin/xdg-screensaver line 750: string:$window_id \ ^--------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: string:"$window_id" \ In /usr/bin/xdg-screensaver line 759: value=`cat "$screensaver_file.cookie"` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: value=$(cat "$screensaver_file.cookie") In /usr/bin/xdg-screensaver line 765: uint32:$value \ ^----^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: uint32:"$value" \ In /usr/bin/xdg-screensaver line 794: value=`cat "$screensaver_file.cookie"` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: value=$(cat "$screensaver_file.cookie") In /usr/bin/xdg-screensaver line 800: uint32:$value \ ^----^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: uint32:"$value" \ In /usr/bin/xdg-screensaver line 808: status=`dbus-send --session \ ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: status=$(dbus-send --session \ --dest=org.freedesktop.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=2000 \ /ScreenSaver \ org.freedesktop.ScreenSaver.GetActive \ | grep boolean | cut -d ' ' -f 5) In /usr/bin/xdg-screensaver line 817: if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined. In /usr/bin/xdg-screensaver line 864: status=`dcop kdesktop KScreensaverIface isEnabled` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: status=$(dcop kdesktop KScreensaverIface isEnabled) In /usr/bin/xdg-screensaver line 892: timeout=`xset_screensaver_timeout` ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: timeout=$(xset_screensaver_timeout) In /usr/bin/xdg-screensaver line 902: value=`cat "$screensaver_file.xset"` ^----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: value=$(cat "$screensaver_file.xset") In /usr/bin/xdg-screensaver line 903: xset s $value > /dev/null ^----^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: xset s "$value" > /dev/null In /usr/bin/xdg-screensaver line 920: timeout=`xset_screensaver_timeout` ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: timeout=$(xset_screensaver_timeout) In /usr/bin/xdg-screensaver line 943: tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` ^-----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: tmpfile=$(mktemp $TMPDIR/tmp.XXXXXXXXXX) In /usr/bin/xdg-screensaver line 945: cat "$screensaver_file" 2> /dev/null | ( ^-----------------^ SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead. In /usr/bin/xdg-screensaver line 948: while read wid pid; do ^--^ SC2162: read without -r will mangle backslashes. In /usr/bin/xdg-screensaver line 949: if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then ^-- SC2009: Consider using pgrep instead of grepping ps output. In /usr/bin/xdg-screensaver line 954: ) > $tmpfile ^------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: ) > "$tmpfile" In /usr/bin/xdg-screensaver line 963: (while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/null & ^-- SC2048: Use "$@" (with quotes) to prevent whitespace problems. In /usr/bin/xdg-screensaver line 1023: ' $window_id $screensaver_file & ^--------^ SC2086: Double quote to prevent globbing and word splitting. ^---------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: ' "$window_id" "$screensaver_file" & In /usr/bin/xdg-screensaver line 1065: status=`dbus-send --session \ ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: status=$(dbus-send --session \ --dest=org.gnome.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=2000 \ /org/gnome/ScreenSaver \ org.gnome.ScreenSaver.GetActive \ | grep boolean | cut -d ' ' -f 5) In /usr/bin/xdg-screensaver line 1074: if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined. In /usr/bin/xdg-screensaver line 1141: status=`dbus-send --session \ ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: status=$(dbus-send --session \ --dest=org.mate.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=2000 \ /org/mate/ScreenSaver \ org.mate.ScreenSaver.GetActive \ | grep boolean | cut -d ' ' -f 5) In /usr/bin/xdg-screensaver line 1150: if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined. In /usr/bin/xdg-screensaver line 1223: status=`dbus-send --session \ ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: status=$(dbus-send --session \ --dest=org.cinnamon.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=2000 \ /org/cinnamon/ScreenSaver \ org.cinnamon.ScreenSaver.GetActive \ | grep boolean | cut -d ' ' -f 5) In /usr/bin/xdg-screensaver line 1406: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-screensaver line 1417: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. For more information: https://www.shellcheck.net/wiki/SC2145 -- Argument mixes string and array. ... https://www.shellcheck.net/wiki/SC2034 -- xdg_redirect_output appears unuse... https://www.shellcheck.net/wiki/SC2039 -- In POSIX sh, 'local' is undefined.