diff --git a/cdist/conf/type/__apt_ppa/explorer/state b/cdist/conf/type/__apt_ppa/explorer/state
index 2bb4f65a..d47e7d20 100755
--- a/cdist/conf/type/__apt_ppa/explorer/state
+++ b/cdist/conf/type/__apt_ppa/explorer/state
@@ -23,10 +23,11 @@
 
 name="$__object_id"
 
+# shellcheck disable=SC1091
 . /etc/lsb-release
 
 repo_name="${name#ppa:}"
-repo_file_name="$(echo "$repo_name" | sed -e "s|[/:]|-|" -e "s|\.|_|")-${DISTRIB_CODENAME}.list"
+repo_file_name="$(echo "$repo_name" | sed -e 's|[/:]|-|' -e 's|\.|_|')-${DISTRIB_CODENAME}.list"
 
 [ -s "/etc/apt/sources.list.d/${repo_file_name}" ] \
    && echo present || echo absent
diff --git a/cdist/conf/type/__go_get/explorer/go-executable b/cdist/conf/type/__go_get/explorer/go-executable
index bdce7559..87182282 100755
--- a/cdist/conf/type/__go_get/explorer/go-executable
+++ b/cdist/conf/type/__go_get/explorer/go-executable
@@ -1,4 +1,6 @@
 #!/bin/sh
+# shellcheck disable=SC1091
 [ -f /etc/environment ] && . /etc/environment
+# shellcheck disable=SC1091
 [ -f /etc/profile     ] && . /etc/profile
 go version 2>/dev/null || true
diff --git a/cdist/conf/type/__jail_freebsd10/explorer/status b/cdist/conf/type/__jail_freebsd10/explorer/status
index 1ceba212..c8039f21 100755
--- a/cdist/conf/type/__jail_freebsd10/explorer/status
+++ b/cdist/conf/type/__jail_freebsd10/explorer/status
@@ -39,7 +39,7 @@ fi
 # backslash-escaped $jaildir
 sjaildir="$(echo ${jaildir} | sed 's#/#\\/#g')"
 
-jls_output="$(jls | grep "[ 	]${sjaildir}\/${name}\$")" || true
+jls_output="$(jls | grep "[ 	]${sjaildir}\\/${name}\$")" || true
 
 if [ -n "${jls_output}" ]; then
    echo "STARTED"
diff --git a/cdist/conf/type/__jail_freebsd9/explorer/status b/cdist/conf/type/__jail_freebsd9/explorer/status
index 1ceba212..c8039f21 100755
--- a/cdist/conf/type/__jail_freebsd9/explorer/status
+++ b/cdist/conf/type/__jail_freebsd9/explorer/status
@@ -39,7 +39,7 @@ fi
 # backslash-escaped $jaildir
 sjaildir="$(echo ${jaildir} | sed 's#/#\\/#g')"
 
-jls_output="$(jls | grep "[ 	]${sjaildir}\/${name}\$")" || true
+jls_output="$(jls | grep "[ 	]${sjaildir}\\/${name}\$")" || true
 
 if [ -n "${jls_output}" ]; then
    echo "STARTED"
diff --git a/cdist/conf/type/__postgres_database/explorer/state b/cdist/conf/type/__postgres_database/explorer/state
index dc9659e2..54eb768d 100755
--- a/cdist/conf/type/__postgres_database/explorer/state
+++ b/cdist/conf/type/__postgres_database/explorer/state
@@ -20,7 +20,7 @@
 
 name="$__object_id"
 
-if su - postgres -c "echo '\q' | psql '$name'" 2>/dev/null; then
+if su - postgres -c "echo '\\q' | psql '$name'" 2>/dev/null; then
    echo "present"
 else
    echo "absent"
diff --git a/cdist/conf/type/__postgres_role/explorer/state b/cdist/conf/type/__postgres_role/explorer/state
index 8c102df9..40f64cef 100755
--- a/cdist/conf/type/__postgres_role/explorer/state
+++ b/cdist/conf/type/__postgres_role/explorer/state
@@ -20,7 +20,7 @@
 
 name="$__object_id"
 
-if su - postgres -c "psql -c '\du' | grep -q '^ *$name *|'"; then
+if su - postgres -c "psql -c '\\du' | grep -q '^ *$name *|'"; then
    echo "present"
 else
    echo "absent"
diff --git a/cdist/conf/type/__ssh_authorized_key/explorer/entry b/cdist/conf/type/__ssh_authorized_key/explorer/entry
index b528b26e..78efbb48 100755
--- a/cdist/conf/type/__ssh_authorized_key/explorer/entry
+++ b/cdist/conf/type/__ssh_authorized_key/explorer/entry
@@ -27,5 +27,5 @@ then
     file="$(cat "$__object/parameter/file")"
 
     # get any entries that match the type and key
-    grep ".*$type_and_key\([ \n]\|$\)" "$file" || true
+    grep ".*$type_and_key\\([ \\n]\\|$\\)" "$file" || true
 fi
diff --git a/cdist/conf/type/__start_on_boot/explorer/state b/cdist/conf/type/__start_on_boot/explorer/state
index d8f9b7ba..cef9013e 100644
--- a/cdist/conf/type/__start_on_boot/explorer/state
+++ b/cdist/conf/type/__start_on_boot/explorer/state
@@ -38,12 +38,27 @@ if [ "$init" = 'systemd' ]; then
 else
     case "$os" in
         debian|openwrt|devuan)
-            state="present"
-            [ -f "/etc/rc$runlevel.d/S"??"$name" ] || state="absent"
+            state="absent"
+            for file in "/etc/rc$runlevel.d/S"??"$name"
+            do
+                if [ -f "$file" ]
+                then
+                    state="present"
+                    break
+                fi
+            done
         ;;
         ubuntu)
             state="absent"
-            [ -f "/etc/rc$runlevel.d/S"??"$name" ] && state="present"
+            for file in "/etc/rc$runlevel.d/S"??"$name"
+            do
+                if [ -f "$file" ]
+                then
+                    state="present"
+                    break
+                fi
+            done
+
             [ -f "/etc/init/${name}.conf" ] && state="present"
         ;;
 
diff --git a/cdist/conf/type/__zypper_service/explorer/service_id b/cdist/conf/type/__zypper_service/explorer/service_id
index 91858d84..7161f804 100644
--- a/cdist/conf/type/__zypper_service/explorer/service_id
+++ b/cdist/conf/type/__zypper_service/explorer/service_id
@@ -27,4 +27,4 @@ else
 fi
 # simpler command which works only on SLES11 SP3 or newer:
 # echo $(zypper ls -u -E | grep -E "\<$uri\>" | cut -d'|' -f 1 )
-zypper ls -u | grep -E '^([^|]+\|){3,3} Yes' | grep -E "\<$uri\>" | cut -d'|' -f 1
+zypper ls -u | grep -E '^([^|]+\|){3,3} Yes' | grep -E "\\<$uri\\>" | cut -d'|' -f 1