In /usr/bin/xdg-desktop-icon line 217: [ ${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-desktop-icon line 225: read first rest ^--^ SC2162: read without -r will mangle backslashes. In /usr/bin/xdg-desktop-icon line 234: binary="`which "$1"`" ^----------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: binary="$(which "$1")" In /usr/bin/xdg-desktop-icon line 235: binary="`readlink -f "$binary"`" ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: binary="$(readlink -f "$binary")" In /usr/bin/xdg-desktop-icon line 236: base="`basename "$binary"`" ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: base="$(basename "$binary")" In /usr/bin/xdg-desktop-icon line 248: 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-desktop-icon line 249: command="`which "$command"`" ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(which "$command")" In /usr/bin/xdg-desktop-icon line 250: 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-desktop-icon line 264: desktop="`basename "$1"`" ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: desktop="$(basename "$1")" In /usr/bin/xdg-desktop-icon line 273: 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-desktop-icon line 275: 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-desktop-icon line 290: 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-desktop-icon line 291: command="`which "$command"`" ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: command="$(which "$command")" In /usr/bin/xdg-desktop-icon line 301: exit_success() ^-- SC2120: exit_success references arguments, but none are ever passed. In /usr/bin/xdg-desktop-icon line 320: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 336: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 348: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 360: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 372: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 384: echo "xdg-desktop-icon: $@" >&2 ^-- SC2145: Argument mixes string and array. Use * or separate argument. In /usr/bin/xdg-desktop-icon line 404: file=`basename "$1"` ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: file=$(basename "$1") In /usr/bin/xdg-desktop-icon line 427: DIR=`dirname "$1"` ^------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: DIR=$(dirname "$1") In /usr/bin/xdg-desktop-icon line 447: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-desktop-icon line 452: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-desktop-icon line 457: exit_success ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1. In /usr/bin/xdg-desktop-icon line 466: 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-desktop-icon line 525: 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-desktop-icon line 528: 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-desktop-icon line 581: 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-desktop-icon line 582: 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-desktop-icon line 583: 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-desktop-icon line 584: 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-desktop-icon line 585: 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-desktop-icon line 586: 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-desktop-icon line 587: 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-desktop-icon line 663: if [ "$vendor" = "true" -a "$action" = "install" ] ; then ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. In /usr/bin/xdg-desktop-icon line 668: filetype=other ^------^ SC2034: filetype appears unused. Verify use (or export if used externally). In /usr/bin/xdg-desktop-icon line 675: desktop_dir=`xdg-user-dir DESKTOP` ^--------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: desktop_dir=$(xdg-user-dir DESKTOP) In /usr/bin/xdg-desktop-icon line 677: desktop_dir_kde=`kde${KDE_SESSION_VERSION}-config --userpath desktop 2> /dev/null` ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. ^--------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: desktop_dir_kde=$(kde"${KDE_SESSION_VERSION}"-config --userpath desktop 2> /dev/null) In /usr/bin/xdg-desktop-icon line 685: save_umask=`umask` ^-----^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: save_umask=$(umask) In /usr/bin/xdg-desktop-icon line 688: umask $save_umask ^---------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: umask "$save_umask" In /usr/bin/xdg-desktop-icon line 691: if [ "x`readlink -f "$desktop_dir"`" != "x`readlink -f "$desktop_dir_kde"`" ]; then ^--------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. ^-- SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: if [ "x$(readlink -f "$desktop_dir")" != "x$(readlink -f "$desktop_dir_kde")" ]; then In /usr/bin/xdg-desktop-icon line 699: basefile=`basename "$desktop_file"` ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: basefile=$(basename "$desktop_file") In /usr/bin/xdg-desktop-icon line 705: save_umask=`umask` ^-----^ SC2006: Use $(...) notation instead of legacy backticked `...`. Did you mean: save_umask=$(umask) In /usr/bin/xdg-desktop-icon line 711: eval 'cp "$desktop_file" "$x/$basefile"'$xdg_redirect_output ^------------------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: eval 'cp "$desktop_file" "$x/$basefile"'"$xdg_redirect_output" In /usr/bin/xdg-desktop-icon line 716: umask $save_umask ^---------^ SC2086: Double quote to prevent globbing and word splitting. Did you mean: umask "$save_umask" In /usr/bin/xdg-desktop-icon line 729: 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 -- filetype appears unused. Verify u... https://www.shellcheck.net/wiki/SC2092 -- Remove backticks to avoid executi...