In /usr/bin/xdg-settings line 146:
  [ ${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-settings line 154:
    read first rest
    ^--^ SC2162: read without -r will mangle backslashes.


In /usr/bin/xdg-settings line 163:
    binary="`which "$1"`"
            ^----------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(which "$1")"


In /usr/bin/xdg-settings line 164:
    binary="`readlink -f "$binary"`"
            ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(readlink -f "$binary")"


In /usr/bin/xdg-settings line 165:
    base="`basename "$binary"`"
          ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    base="$(basename "$binary")"


In /usr/bin/xdg-settings line 177:
            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-settings line 178:
            command="`which "$command"`"
                     ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(which "$command")"


In /usr/bin/xdg-settings line 179:
            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-settings line 193:
    desktop="`basename "$1"`"
             ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    desktop="$(basename "$1")"


In /usr/bin/xdg-settings line 202:
            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-settings line 204:
            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-settings line 219:
            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-settings line 220:
            command="`which "$command"`"
                     ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            command="$(which "$command")"


In /usr/bin/xdg-settings line 230:
exit_success()
^-- SC2120: exit_success references arguments, but none are ever passed.


In /usr/bin/xdg-settings line 249:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 265:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 277:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 289:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 301:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 313:
        echo "xdg-settings: $@" >&2
                            ^-- SC2145: Argument mixes string and array. Use * or separate argument.


In /usr/bin/xdg-settings line 333:
    file=`basename "$1"`
         ^-------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    file=$(basename "$1")


In /usr/bin/xdg-settings line 356:
        DIR=`dirname "$1"`
            ^------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        DIR=$(dirname "$1")


In /usr/bin/xdg-settings line 376:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 381:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 386:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 395:
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-settings line 400:
    xdg_redirect_output=" >&2"
    ^-----------------^ SC2034: xdg_redirect_output appears unused. Verify use (or export if used externally).


In /usr/bin/xdg-settings line 454:
      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-settings line 457:
      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-settings line 510:
    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-settings line 511:
    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-settings line 512:
    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-settings line 513:
    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-settings line 514:
    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-settings line 515:
    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-settings line 516:
    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-settings line 568:
    MIMETYPES="`grep "^MimeType=" "$apps/$1" | cut -d= -f 2-`"
               ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    MIMETYPES="$(grep "^MimeType=" "$apps/$1" | cut -d= -f 2-)"


In /usr/bin/xdg-settings line 577:
    temp="`mktemp "$apps/$1.XXXXXX"`" || return
          ^------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    temp="$(mktemp "$apps/$1.XXXXXX")" || return


In /usr/bin/xdg-settings line 581:
    oldlines="`wc -l < "$apps/$1"`"
              ^------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    oldlines="$(wc -l < "$apps/$1")"


In /usr/bin/xdg-settings line 582:
    newlines="`wc -l < "$temp"`"
              ^---------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    newlines="$(wc -l < "$temp")"


In /usr/bin/xdg-settings line 584:
    if [ $oldlines -le $newlines ]; then
         ^-------^ SC2086: Double quote to prevent globbing and word splitting.
                       ^-------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    if [ "$oldlines" -le "$newlines" ]; then


In /usr/bin/xdg-settings line 604:
    if [ "$DE" = kde -a -z "$XDG_MIME_FIXED" ]; then
                     ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.


In /usr/bin/xdg-settings line 630:
    orig="`get_browser_mime $MIME`"
          ^----------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.
                            ^---^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    orig="$(get_browser_mime "$MIME")"


In /usr/bin/xdg-settings line 636:
    if [ x"`get_browser_mime`" != x"$1" ]; then
           ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    if [ x"$(get_browser_mime)" != x"$1" ]; then


In /usr/bin/xdg-settings line 653:
        application="`kreadconfig5 --file $configfile --group $configsection --key $configkey`"
                     ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                          ^---------^ 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: 
        application="$(kreadconfig5 --file "$configfile" --group "$configsection" --key "$configkey")"


In /usr/bin/xdg-settings line 655:
        application="`kreadconfig --file $configfile --group $configsection --key $configkey`"
                     ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                         ^---------^ 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: 
        application="$(kreadconfig --file "$configfile" --group "$configsection" --key "$configkey")"


In /usr/bin/xdg-settings line 664:
        configfile_dir=`kde${KDE_SESSION_VERSION}-config --path config  | cut -d ':' -f 1`
                       ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                           ^--------------------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
        configfile_dir=$(kde"${KDE_SESSION_VERSION}"-config --path config  | cut -d ':' -f 1)


In /usr/bin/xdg-settings line 698:
        desktop="`binary_to_desktop_file "${browser#!}"`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        desktop="$(binary_to_desktop_file "${browser#!}")"


In /usr/bin/xdg-settings line 714:
    browser="`read_kde_browser`"
             ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(read_kde_browser)"


In /usr/bin/xdg-settings line 725:
    check="`desktop_file_to_binary "$1"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$1")"


In /usr/bin/xdg-settings line 728:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 730:
    browser="`read_kde_browser`"
             ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(read_kde_browser)"


In /usr/bin/xdg-settings line 731:
    binary="`resolve_kde_browser`"
            ^-------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(resolve_kde_browser)"


In /usr/bin/xdg-settings line 734:
    if [ x"!" == x"${browser:0:1}" ]; then
              ^-- SC2039: In POSIX sh, == in place of = is undefined.
                   ^------------^ SC2039: In POSIX sh, string indexing is undefined.


In /usr/bin/xdg-settings line 736:
        browser="`binary_to_desktop_file ${browser:1}`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                         ^----------^ SC2039: In POSIX sh, string indexing is undefined.
                                         ^----------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
        browser="$(binary_to_desktop_file "${browser:1}")"


In /usr/bin/xdg-settings line 737:
        binary="`desktop_file_to_binary $browser`"
                ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                        ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
        binary="$(desktop_file_to_binary "$browser")"


In /usr/bin/xdg-settings line 742:
    if [ x"$binary" != x -a x"$binary" != x"$check" ]; then
                         ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.


In /usr/bin/xdg-settings line 744:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 746:
    browser="`get_browser_mime`"
             ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(get_browser_mime)"


In /usr/bin/xdg-settings line 747:
    binary="`desktop_file_to_binary "$browser"`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$browser")"


In /usr/bin/xdg-settings line 750:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 753:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 771:
    binary="`gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word)"


In /usr/bin/xdg-settings line 779:
        desktop="`binary_to_desktop_file "$binary"`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        desktop="$(binary_to_desktop_file "$binary")"


In /usr/bin/xdg-settings line 786:
    check="`desktop_file_to_binary "$1"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$1")"


In /usr/bin/xdg-settings line 789:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 791:
    binary="`gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word)"


In /usr/bin/xdg-settings line 794:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 798:
        binary="`gconftool-2 --get /desktop/gnome/url-handlers/$protocol/command | first_word`"
                ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        binary="$(gconftool-2 --get /desktop/gnome/url-handlers/$protocol/command | first_word)"


In /usr/bin/xdg-settings line 801:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 804:
    browser="`get_browser_mime`"
             ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(get_browser_mime)"


In /usr/bin/xdg-settings line 805:
    binary="`desktop_file_to_binary "$browser"`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$browser")"


In /usr/bin/xdg-settings line 808:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 811:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 816:
    binary="`desktop_file_to_binary "$1"`"
            ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$1")"


In /usr/bin/xdg-settings line 847:
    check="`desktop_file_to_binary "$1"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$1")"


In /usr/bin/xdg-settings line 850:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 854:
        browser="`get_browser_mime "x-scheme-handler/$protocol"`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        browser="$(get_browser_mime "x-scheme-handler/$protocol")"


In /usr/bin/xdg-settings line 857:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 861:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 866:
    binary="`desktop_file_to_binary "$1"`"
            ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$1")"


In /usr/bin/xdg-settings line 884:
        [ "$dir" ] && [ -d "$dir/xfce4" ] || continue
                   ^-- SC2015: Note that A && B || C is not if-then-else. C may run when A is true.


In /usr/bin/xdg-settings line 888:
        desktop="`grep "^WebBrowser=" "$file" | cut -d= -f 2-`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        desktop="$(grep "^WebBrowser=" "$file" | cut -d= -f 2-)"


In /usr/bin/xdg-settings line 897:
    browser="`get_browser_xfce`"
             ^----------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(get_browser_xfce)"


In /usr/bin/xdg-settings line 900:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 903:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 917:
        [ "$dir" ] && [ -d "$dir/xfce4/helpers" ] || continue
                   ^-- SC2015: Note that A && B || C is not if-then-else. C may run when A is true.


In /usr/bin/xdg-settings line 925:
        [ "$dir" ] && [ -d "$dir/applications" ] || continue
                   ^-- SC2015: Note that A && B || C is not if-then-else. C may run when A is true.


In /usr/bin/xdg-settings line 936:
            echo "X-XFCE-Commands=`echo "$command" | first_word`" >> "$target/$1"
            ^-- SC2129: Consider using { cmd1; cmd2; } >> file instead of individual redirects.
                                  ^----------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
            echo "X-XFCE-Commands=$(echo "$command" | first_word)" >> "$target/$1"


In /usr/bin/xdg-settings line 961:
    temp="`mktemp "$helpers_rc.XXXXXX"`" || return
          ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    temp="$(mktemp "$helpers_rc.XXXXXX")" || return


In /usr/bin/xdg-settings line 965:
    oldlines="`wc -l < "$helpers_rc"`"
              ^---------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    oldlines="$(wc -l < "$helpers_rc")"


In /usr/bin/xdg-settings line 966:
    newlines="`wc -l < "$temp"`"
              ^---------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    newlines="$(wc -l < "$temp")"


In /usr/bin/xdg-settings line 968:
    if [ $oldlines -le $newlines ]; then
         ^-------^ SC2086: Double quote to prevent globbing and word splitting.
                       ^-------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    if [ "$oldlines" -le "$newlines" ]; then


In /usr/bin/xdg-settings line 981:
    if [ -n "$BROWSER" ]; then
             ^------^ SC2153: Possible misspelling: BROWSER may not be assigned, but browser is.


In /usr/bin/xdg-settings line 982:
        local browser=$(binary_to_desktop_file "${BROWSER%%:*}")
        ^-----------^ SC2039: In POSIX sh, 'local' is undefined.
              ^-----^ SC2155: Declare and assign separately to avoid masking return values.


In /usr/bin/xdg-settings line 984:
            echo "$(basename "$browser")"
                 ^----------------------^ SC2005: Useless echo? Instead of 'echo $(cmd)', just use 'cmd'.


In /usr/bin/xdg-settings line 994:
    local browser=$(binary_to_desktop_file x-www-browser)
    ^-----------^ SC2039: In POSIX sh, 'local' is undefined.
          ^-----^ SC2155: Declare and assign separately to avoid masking return values.


In /usr/bin/xdg-settings line 996:
        echo "$(basename "$browser")"
             ^----------------------^ SC2005: Useless echo? Instead of 'echo $(cmd)', just use 'cmd'.


In /usr/bin/xdg-settings line 1005:
    local desktop="$1"
    ^-----------^ SC2039: In POSIX sh, 'local' is undefined.


In /usr/bin/xdg-settings line 1010:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1016:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1022:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1026:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1068:
        handler="`read_kde_config emaildefaults PROFILE_Default EmailClient | first_word`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        handler="$(read_kde_config emaildefaults PROFILE_Default EmailClient | first_word)"


In /usr/bin/xdg-settings line 1082:
    check="`desktop_file_to_binary "$2"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1085:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1087:
    if [ x"$1" = "mailto" ]; then
               ^-- SC2193: The arguments to this comparison can never be equal. Make sure your syntax is correct.


In /usr/bin/xdg-settings line 1088:
        binary="`read_kde_config emaildefaults PROFILE_Default EmailClient`"
                ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        binary="$(read_kde_config emaildefaults PROFILE_Default EmailClient)"


In /usr/bin/xdg-settings line 1090:
        if [ x"!" == x"${binary:0:1}" ]; then
                  ^-- SC2039: In POSIX sh, == in place of = is undefined.
                       ^-----------^ SC2039: In POSIX sh, string indexing is undefined.


In /usr/bin/xdg-settings line 1092:
            desktop_file="`binary_to_desktop_file ${binary:1}`"
                          ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                  ^---------^ SC2039: In POSIX sh, string indexing is undefined.
                                                  ^---------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            desktop_file="$(binary_to_desktop_file "${binary:1}")"


In /usr/bin/xdg-settings line 1093:
            binary="`desktop_file_to_binary $desktop_file`"
                    ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                            ^-----------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            binary="$(desktop_file_to_binary "$desktop_file")"


In /usr/bin/xdg-settings line 1097:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1100:
        handler="`get_browser_mime x-scheme-handler/$1`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                    ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
        handler="$(get_browser_mime x-scheme-handler/"$1")"


In /usr/bin/xdg-settings line 1101:
        binary="`desktop_file_to_binary "$handler"`"
                ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        binary="$(desktop_file_to_binary "$handler")"


In /usr/bin/xdg-settings line 1104:
            exit_success
            ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1108:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1115:
        binary="`desktop_file_to_binary "$2"`"
                ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        binary="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1129:
    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                           ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    binary="$(gconftool-2 --get /desktop/gnome/url-handlers/"$1"/command | first_word)"


In /usr/bin/xdg-settings line 1134:
        desktop="`binary_to_desktop_file "$binary"`"
                 ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
        desktop="$(binary_to_desktop_file "$binary")"


In /usr/bin/xdg-settings line 1141:
    check="`desktop_file_to_binary "$2"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1144:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1146:
    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
            ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.
                                                           ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    binary="$(gconftool-2 --get /desktop/gnome/url-handlers/"$1"/command | first_word)"


In /usr/bin/xdg-settings line 1149:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1152:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1157:
    binary="`desktop_file_to_binary "$2"`"
            ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1160:
    gconftool-2 --type string --set /desktop/gnome/url-handlers/$1/command "$binary %s"
                                                                ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    gconftool-2 --type string --set /desktop/gnome/url-handlers/"$1"/command "$binary %s"


In /usr/bin/xdg-settings line 1161:
    gconftool-2 --type bool --set /desktop/gnome/url-handlers/$1/needs_terminal false
                                                              ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    gconftool-2 --type bool --set /desktop/gnome/url-handlers/"$1"/needs_terminal false


In /usr/bin/xdg-settings line 1162:
    gconftool-2 --type bool --set /desktop/gnome/url-handlers/$1/enabled true
                                                              ^-- SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
    gconftool-2 --type bool --set /desktop/gnome/url-handlers/"$1"/enabled true


In /usr/bin/xdg-settings line 1176:
    check="`desktop_file_to_binary "$2"`"
           ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    check="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1179:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1181:
    browser="`get_browser_mime "x-scheme-handler/$1"`"
             ^-- SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    browser="$(get_browser_mime "x-scheme-handler/$1")"


In /usr/bin/xdg-settings line 1184:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1187:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1192:
    binary="`desktop_file_to_binary "$2"`"
            ^---------------------------^ SC2006: Use $(...) notation instead of legacy backticked `...`.

Did you mean: 
    binary="$(desktop_file_to_binary "$2")"


In /usr/bin/xdg-settings line 1223:
    if [ -n "$BROWSER" ] && ([ "$1" = http ] || [ "$1" = https ]); then
                            ^-- SC2235: Use { ..; } instead of (..) to avoid subshell overhead.


In /usr/bin/xdg-settings line 1232:
    local scheme="$1" desktop="$2"
    ^-----------------------^ SC2039: In POSIX sh, 'local' is undefined.


In /usr/bin/xdg-settings line 1236:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1239:
    local browser=$(get_url_scheme_handler_generic "$scheme")
    ^-----------^ SC2039: In POSIX sh, 'local' is undefined.
          ^-----^ SC2155: Declare and assign separately to avoid masking return values.


In /usr/bin/xdg-settings line 1242:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1245:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1250:
    local scheme="$1" desktop="$2"
    ^-----------------------^ SC2039: In POSIX sh, 'local' is undefined.


In /usr/bin/xdg-settings line 1253:
           ([ "$scheme" = http ] || [ "$scheme" = https ]); then
           ^-- SC2235: Use { ..; } instead of (..) to avoid subshell overhead.


In /usr/bin/xdg-settings line 1270:
    local handler=$1; shift
    ^-----------^ SC2039: In POSIX sh, 'local' is undefined.


In /usr/bin/xdg-settings line 1277:
            get_browser_$handler
                        ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            get_browser_"$handler"


In /usr/bin/xdg-settings line 1281:
            get_url_scheme_handler_$handler "$1"
                                   ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            get_url_scheme_handler_"$handler" "$1"


In /usr/bin/xdg-settings line 1292:
            check_browser_$handler "$1"
                          ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            check_browser_"$handler" "$1"


In /usr/bin/xdg-settings line 1297:
            check_url_scheme_handler_$handler "$1" "$2"
                                     ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            check_url_scheme_handler_"$handler" "$1" "$2"


In /usr/bin/xdg-settings line 1309:
            set_browser_$handler "$1"
                        ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            set_browser_"$handler" "$1"


In /usr/bin/xdg-settings line 1315:
            set_url_scheme_handler_$handler "$1" "$2"
                                   ^------^ SC2086: Double quote to prevent globbing and word splitting.

Did you mean: 
            set_url_scheme_handler_"$handler" "$1" "$2"


In /usr/bin/xdg-settings line 1324:
    if [ $? -eq 0 ]; then
         ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.


In /usr/bin/xdg-settings line 1325:
        exit_success
        ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1335:
    exit_success
    ^----------^ SC2119: Use exit_success "$@" if function's $1 should mean script's $1.


In /usr/bin/xdg-settings line 1340:
[ x"$1" = x"get" -o x"$3" != x ] || exit_failure_syntax "no parameter value given"
                 ^-- SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /usr/bin/xdg-settings line 1346:
if [ x"$op" != x"get" -a x"$op" != x"check" -a x"$op" != x"set" ]; then
                      ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
                                            ^-- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

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.