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...