diff --git a/cdist/conf/explorer/lsb_codename b/cdist/conf/explorer/lsb_codename
index bfabd444..26bb8e3d 100755
--- a/cdist/conf/explorer/lsb_codename
+++ b/cdist/conf/explorer/lsb_codename
@@ -22,6 +22,7 @@
 set +e
 case "$("$__explorer/os")" in
    openwrt)
+      # shellcheck disable=SC1091
       (. /etc/openwrt_release && echo "$DISTRIB_CODENAME")
    ;;
    *)
diff --git a/cdist/conf/explorer/lsb_description b/cdist/conf/explorer/lsb_description
index 441fdbf3..b1009627 100755
--- a/cdist/conf/explorer/lsb_description
+++ b/cdist/conf/explorer/lsb_description
@@ -22,6 +22,7 @@
 set +e
 case "$("$__explorer/os")" in
    openwrt)
+      # shellcheck disable=SC1091
       (. /etc/openwrt_release && echo "$DISTRIB_DESCRIPTION")
    ;;
    *)
diff --git a/cdist/conf/explorer/lsb_id b/cdist/conf/explorer/lsb_id
index 1a12b610..82ff9977 100755
--- a/cdist/conf/explorer/lsb_id
+++ b/cdist/conf/explorer/lsb_id
@@ -22,6 +22,7 @@
 set +e
 case "$("$__explorer/os")" in
    openwrt)
+      # shellcheck disable=SC1091
       (. /etc/openwrt_release && echo "$DISTRIB_ID")
    ;;
    *)
diff --git a/cdist/conf/explorer/lsb_release b/cdist/conf/explorer/lsb_release
index 25eb95b1..5ebfff1a 100755
--- a/cdist/conf/explorer/lsb_release
+++ b/cdist/conf/explorer/lsb_release
@@ -22,6 +22,7 @@
 set +e
 case "$("$__explorer/os")" in
    openwrt)
+      # shellcheck disable=SC1091
       (. /etc/openwrt_release && echo "$DISTRIB_RELEASE")
    ;;
    *)
diff --git a/cdist/conf/type/__cron/gencode-remote b/cdist/conf/type/__cron/gencode-remote
index f58896af..59398058 100755
--- a/cdist/conf/type/__cron/gencode-remote
+++ b/cdist/conf/type/__cron/gencode-remote
@@ -58,7 +58,7 @@ state_should="$(cat "$__object/parameter/state" 2>/dev/null || echo "present")"
 # These are the old markers
 prefix="#cdist:__cron/$__object_id"
 suffix="#/cdist:__cron/$__object_id"
-filter="^# DO NOT EDIT THIS FILE|^# \(.* installed on |^# \(Cron version V|^# \(Cronie version .\..\)$"
+filter='^# DO NOT EDIT THIS FILE|^# \(.* installed on |^# \(Cron version V|^# \(Cronie version .\..\)$'
 cat << DONE
 crontab -u $user -l 2>/dev/null | grep -v -E "$filter" | awk -v prefix="$prefix" -v suffix="$suffix" '
 {
diff --git a/cdist/conf/type/__daemontools/manifest b/cdist/conf/type/__daemontools/manifest
index 656f4984..b04c7e07 100755
--- a/cdist/conf/type/__daemontools/manifest
+++ b/cdist/conf/type/__daemontools/manifest
@@ -9,6 +9,7 @@ __directory "$servicedir" --mode 700
 os=$(cat "$__global/explorer/os")
 init=$(cat "$__global/explorer/init")
 
+require=""
 case $os in
 	freebsd)
 		# TODO change to __start_on_boot once it supports freebsd
diff --git a/cdist/conf/type/__grafana_dashboard/manifest b/cdist/conf/type/__grafana_dashboard/manifest
index 2e9bd115..9cd1465d 100755
--- a/cdist/conf/type/__grafana_dashboard/manifest
+++ b/cdist/conf/type/__grafana_dashboard/manifest
@@ -3,6 +3,7 @@
 os=$(cat "$__global/explorer/os")
 os_version=$(cat "$__global/explorer/os_version")
 
+require=""
 case $os in
     debian|devuan)
         case $os_version in
diff --git a/cdist/conf/type/__install_coreos/gencode-remote b/cdist/conf/type/__install_coreos/gencode-remote
index fbe86479..f550b5a5 100755
--- a/cdist/conf/type/__install_coreos/gencode-remote
+++ b/cdist/conf/type/__install_coreos/gencode-remote
@@ -12,7 +12,7 @@ eof
 
 coreos-install -d "${device}" \
 	\$(if [ -s "\${ignition_file}" ]; then
-		printf -- "-i \${ignition_file}\n"
+		printf -- "-i \${ignition_file}\\n"
 	fi)
 
 rm "\${ignition_file}"
diff --git a/cdist/conf/type/__install_reset_disk/gencode-remote b/cdist/conf/type/__install_reset_disk/gencode-remote
index 947dd472..ac9ae6cf 100755
--- a/cdist/conf/type/__install_reset_disk/gencode-remote
+++ b/cdist/conf/type/__install_reset_disk/gencode-remote
@@ -67,5 +67,5 @@ fi
 
 # erase partition table
 dd if=/dev/zero of=$disk bs=512 count=1
-printf 'w\n' | fdisk -u -c $disk || true
+printf 'w\\n' | fdisk -u -c $disk || true
 DONE
diff --git a/cdist/conf/type/__jail/manifest b/cdist/conf/type/__jail/manifest
index adf9bd99..fad6a3a1 100755
--- a/cdist/conf/type/__jail/manifest
+++ b/cdist/conf/type/__jail/manifest
@@ -37,7 +37,7 @@ jaildir="$(cat "$__object/parameter/jaildir")"
 
 __directory "${jaildir}" --parents
 
-set -- "$@" "$__object_id" "--state" "$state"
+set -- "$@" "$__object_id"
 cd "$__object/parameter"
 for property in *; do
 	set -- "$@" "--$property" "$(cat "$property")"
diff --git a/cdist/conf/type/__jail_freebsd10/gencode-remote b/cdist/conf/type/__jail_freebsd10/gencode-remote
index 230370c2..4f376c25 100755
--- a/cdist/conf/type/__jail_freebsd10/gencode-remote
+++ b/cdist/conf/type/__jail_freebsd10/gencode-remote
@@ -45,7 +45,7 @@ else
 #    when $state=present, it's required. Enforce this.
    if [ "$state" = "present" ]; then
       exec >&2
-      echo "If --state is 'present,' --ip must be given\!"
+      printf 'If --state is "present", --ip must be given\!\n'
       exit 1
    fi
 fi
@@ -114,19 +114,19 @@ startJail() {
 deleteJail() {
 # Unmount the jail's mountpoints if necessary
    cat <<EOF
-      output="\$(mount | grep "\/${name}\/dev")" || true
+      output="\$(mount | grep "\\/${name}\\/dev")" || true
       if [ -n "\${output}" ]; then # /dev is still mounted...jail still running?
          /etc/rc.d/jail stop "${name}"
       fi
-      output="\$(mount | grep "\/rw\/${name}\/")" || true
+      output="\$(mount | grep "\\/rw\\/${name}\\/")" || true
       if [ -n "\${output}" ]; then # >=1 rw mount is mounted still
-         for DIR in "${output}"; do
+         for DIR in "\${output}"; do
             umount -F "/etc/fstab.${name}" "\$(echo "${DIR}" | awk '{print \$3}')"
          done
       fi
-      output="\$(mount | grep "\/${name} (")" || true
+      output="\$(mount | grep "\\/${name} (")" || true
       if [ -n "\${output}" ]; then # ro mount is mounted still
-         umount -F "/etc/fstab.${name}" "\$(echo "${output}" | awk '{print \$3}')"
+         umount -F "/etc/fstab.${name}" "\$(echo "\${output}" | awk '{print \$3}')"
       fi
 EOF
 # Remove the jail's rw mountpoints
@@ -275,9 +275,9 @@ cat <<EOF
       if [ ! -f /etc/devfs.rules ]; then
          touch /etc/devfs.rules
       fi
-      if [ -z "\$(grep '\[jailrules=' /etc/devfs.rules)" ]; then   # The default ruleset doesn't exist
+      if [ -z "\$(grep '\\[jailrules=' /etc/devfs.rules)" ]; then   # The default ruleset doesn't exist
          # Get the highest-numbered ruleset
-         highest="\$(sed -n 's/\[.*=\([0-9]*\)\]/\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true
+         highest="\$(sed -n 's/\\[.*=\\([0-9]*\\)\\]/\\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true
          # increment by 1
          [ -z "\$highest" ] && highest=10
          let num="\${highest}+1" 2>&1 >/dev/null   # Close the FD==fail...
@@ -290,7 +290,7 @@ add include \\\$devfsrules_unhide_basic
 add include \\\$devfsrules_unhide_login
 END
       fi
-      devfsruleset_num=\$(grep "\[${devfsruleset}=" /etc/devfs.rules | sed -n 's/\[.*=\([0-9]*\)\]/\1/pg')
+      devfsruleset_num=\$(grep "\\[${devfsruleset}=" /etc/devfs.rules | sed -n 's/\\[.*=\\([0-9]*\\)\\]/\\1/pg')
       if [ -n "\$devfsruleset_num" ]; then
          jaildata="\$jaildata
          devfs_ruleset=\"\${devfsruleset_num}\";"
@@ -299,7 +299,7 @@ END
 
 EOF
    # shellcheck disable=SC2028
-   echo "printf \"%s\\n%s\n%s\n\" \"\$jailheader\" \"\$jaildata\" \"\$jailtrailer\" >>\"\$jailfile\""
+   echo "printf \"%s\\n%s\\n%s\\n\" \"\$jailheader\" \"\$jaildata\" \"\$jailtrailer\" >>\"\$jailfile\""
 
 # Add $name to jail_list if $onboot=yes
 if [ "$onboot" = "yes" ]; then
diff --git a/cdist/conf/type/__jail_freebsd9/gencode-remote b/cdist/conf/type/__jail_freebsd9/gencode-remote
index 13c237a9..68229d3e 100755
--- a/cdist/conf/type/__jail_freebsd9/gencode-remote
+++ b/cdist/conf/type/__jail_freebsd9/gencode-remote
@@ -45,7 +45,7 @@ else
 #    when $state=present, it's required. Enforce this.
    if [ "$state" = "present" ]; then
       exec >&2
-      echo "If --state is 'present,' --ip must be given\!"
+      printf 'If --state is "present", --ip must be given\!\n'
       exit 1
    fi
 fi
@@ -119,19 +119,19 @@ startJail() {
 deleteJail() {
 # Unmount the jail's mountpoints if necessary
    cat <<EOF
-      output="\$(mount | grep "\/${name}\/dev")" || true
+      output="\$(mount | grep "\\/${name}\\/dev")" || true
       if [ -n "\${output}" ]; then # /dev is still mounted...jail still running?
          /etc/rc.d/jail stop "${name}"
       fi
-      output="\$(mount | grep "\/rw\/${name}\/")" || true
+      output="\$(mount | grep "\\/rw\\/${name}\\/")" || true
       if [ -n "\${output}" ]; then # >=1 rw mount is mounted still
-         for DIR in "${output}"; do
+         for DIR in "\${output}"; do
             umount -F "/etc/fstab.${name}" "\$(echo "${DIR}" | awk '{print \$3}')"
          done
       fi
-      output="\$(mount | grep "\/${name} (")" || true
+      output="\$(mount | grep "\\/${name} (")" || true
       if [ -n "\${output}" ]; then # ro mount is mounted still
-         umount -F "/etc/fstab.${name}" "\$(echo "${output}" | awk '{print \$3}')"
+         umount -F "/etc/fstab.${name}" "\$(echo "\${output}" | awk '{print \$3}')"
       fi
 EOF
 # Remove the jail's rw mountpoints
@@ -279,9 +279,9 @@ END
       if [ ! -f /etc/devfs.rules ]; then
          touch /etc/devfs.rules
       fi
-      if [ -z "\$(grep '\[jailrules=' /etc/devfs.rules)" ]; then   # The default ruleset doesn't exist
+      if [ -z "\$(grep '\\[jailrules=' /etc/devfs.rules)" ]; then   # The default ruleset doesn't exist
          # Get the highest-numbered ruleset
-	 highest="\$(sed -n 's/\[.*=\([0-9]*\)\]/\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true
+	 highest="\$(sed -n 's/\\[.*=\\([0-9]*\\)\\]/\\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true
          # increment by 1
          let num="\${highest}+1" 2>&- >&-
          # add default ruleset
diff --git a/cdist/conf/type/__letsencrypt_cert/manifest b/cdist/conf/type/__letsencrypt_cert/manifest
index 56e3532c..d6892c9b 100755
--- a/cdist/conf/type/__letsencrypt_cert/manifest
+++ b/cdist/conf/type/__letsencrypt_cert/manifest
@@ -91,7 +91,7 @@ if [ -f "${__object}/parameter/automatic-renewal" ]; then
 	renew_hook_param="${__object}/parameter/renew-hook"
 	renew_hook=""
 	if [ -f "${renew_hook_param}" ]; then
-		while read hook; do
+		while read -r hook; do
 			renew_hook="${renew_hook} --renew-hook \"${hook}\""
 		done < "${renew_hook_param}"
 	fi
diff --git a/cdist/conf/type/__mount/gencode-remote b/cdist/conf/type/__mount/gencode-remote
index 66d85f88..b2096764 100755
--- a/cdist/conf/type/__mount/gencode-remote
+++ b/cdist/conf/type/__mount/gencode-remote
@@ -39,7 +39,7 @@ case "$state_should" in
             printf ' -o %s' "$(cat "$__object/parameter/options")"
          fi
          printf ' %s' "$(cat "$__object/parameter/device")"
-         printf " %s\n" "$path"
+         printf ' %s\n' "$path"
       else
          # mount using existing fstab entry
          printf 'mount "%s"\n' "$path"
diff --git a/cdist/conf/type/__mount/manifest b/cdist/conf/type/__mount/manifest
index 73937899..999d806c 100755
--- a/cdist/conf/type/__mount/manifest
+++ b/cdist/conf/type/__mount/manifest
@@ -31,7 +31,7 @@ printf " %s" "$type"
 options="$(cat "$__object/parameter/options")"
 printf " %s" "$options"
 printf " %s" "$(cat "$__object/parameter/dump")"
-printf " %s\n" "$(cat "$__object/parameter/pass")"
+printf ' %s\n' "$(cat "$__object/parameter/pass")"
 ) | \
 __block "$__object_name" \
    --file "/etc/fstab" \
diff --git a/cdist/conf/type/__package_opkg/gencode-remote b/cdist/conf/type/__package_opkg/gencode-remote
index 7013ec9f..e94ff388 100755
--- a/cdist/conf/type/__package_opkg/gencode-remote
+++ b/cdist/conf/type/__package_opkg/gencode-remote
@@ -51,7 +51,7 @@ case "$state_should" in
         echo "opkg --verbosity=0 remove '$name'"
     ;;
     *)
-        echo "Unknown state: $state" >&2
+        echo "Unknown state: ${state_should}" >&2
         exit 1
     ;;
 esac
diff --git a/cdist/conf/type/__package_pkgng_freebsd/gencode-remote b/cdist/conf/type/__package_pkgng_freebsd/gencode-remote
index b59e3648..b72544c1 100755
--- a/cdist/conf/type/__package_pkgng_freebsd/gencode-remote
+++ b/cdist/conf/type/__package_pkgng_freebsd/gencode-remote
@@ -95,7 +95,7 @@ if [ -n "$curr_version" ]; then  # PKG *is* installed
       if [ "$upgrade" = "true" ]; then
          execcmd "upg" "${cmd}"
       else
-         printf "Version %s is already installed and pkg-ng can't upgrade directly to version %s.\nTo upgrade to the latest version, use the --upgrade flag.\n" "$curr_version" "$version" >&2
+         printf 'Version %s is already installed and pkg-ng cannot upgrade directly to version %s.\nTo upgrade to the latest version, use the --upgrade flag.\n' "$curr_version" "$version" >&2
          exit 1
       fi
    # PKG is supposed to be installed to the latest version
diff --git a/cdist/conf/type/__pf_ruleset/gencode-local b/cdist/conf/type/__pf_ruleset/gencode-local
index b9de1bce..11bfb0b1 100755
--- a/cdist/conf/type/__pf_ruleset/gencode-local
+++ b/cdist/conf/type/__pf_ruleset/gencode-local
@@ -69,10 +69,10 @@ fi
 
 if [ -n "${cksum}" ]; then
    if [ ! "\${currentSum}" = "${cksum}" ]; then
-      $__remote_copy "${source}" "${my_target_host}:${rcvar}.new"
+      $__remote_copy "${source}" "\${my_target_host}:${rcvar}.new"
    fi
 else # File just doesn't exist yet
-   $__remote_copy "${source}" "${my_target_host}:${rcvar}.new"
+   $__remote_copy "${source}" "\${my_target_host}:${rcvar}.new"
 fi
 EOF
 
diff --git a/cdist/conf/type/__postfix_master/manifest b/cdist/conf/type/__postfix_master/manifest
index 94b5044f..0960ea41 100755
--- a/cdist/conf/type/__postfix_master/manifest
+++ b/cdist/conf/type/__postfix_master/manifest
@@ -50,7 +50,6 @@ entry="$__object/files/entry"
       echo "# $(cat "$__object/parameter/comment")"
    fi
    printf "%s " "$service"
-   printf "%s " "$type"
    for parameter in type private unpriv chroot wakeup maxproc; do
       printf "%s " "$(cat "$__object/parameter/$parameter")"
    done
diff --git a/cdist/conf/type/__postgres_extension/gencode-remote b/cdist/conf/type/__postgres_extension/gencode-remote
index f7895103..627067c7 100755
--- a/cdist/conf/type/__postgres_extension/gencode-remote
+++ b/cdist/conf/type/__postgres_extension/gencode-remote
@@ -33,7 +33,7 @@ case "$state_should" in
          echo "su - postgres -c 'psql -c \"$cmd\" \"$dbname\"'"
     ;;
     absent)
-         cmd="DROP   EXTENSION IF     EXISTS $extenstion"
+         cmd="DROP   EXTENSION IF     EXISTS $extension"
          echo "su - postgres -c 'psql -c \"$cmd\" \"$dbname\"'"
     ;;
 esac
diff --git a/cdist/conf/type/__process/gencode-remote b/cdist/conf/type/__process/gencode-remote
index fc491321..ec9691b9 100755
--- a/cdist/conf/type/__process/gencode-remote
+++ b/cdist/conf/type/__process/gencode-remote
@@ -52,7 +52,7 @@ case "$state_should" in
         if [ -f "$__object/parameter/stop" ]; then
             cat "$__object/parameter/stop"
         else
-            echo kill "${runs}"
+            echo kill "$(cat "$__object/parameter/runs")"
         fi
         echo "stopped" >> "$__messages_out"
     ;;
diff --git a/cdist/conf/type/__prometheus_alertmanager/manifest b/cdist/conf/type/__prometheus_alertmanager/manifest
index 3f417526..64ef76af 100755
--- a/cdist/conf/type/__prometheus_alertmanager/manifest
+++ b/cdist/conf/type/__prometheus_alertmanager/manifest
@@ -15,6 +15,7 @@ storage_path="$(cat "$__object/parameter/storage-path")"
 ##### INSTALL THE PACKAGE ###################################################
 
 require_pkg=""  # what to require if I want to require "the package"
+require=""
 if [ -f "$__object/parameter/install-from-backports" ]; then
 	os=$(cat "$__global/explorer/os")
 	os_version=$(cat "$__global/explorer/os_version")
diff --git a/cdist/conf/type/__prometheus_exporter/manifest b/cdist/conf/type/__prometheus_exporter/manifest
index 35e654e2..b9e14531 100644
--- a/cdist/conf/type/__prometheus_exporter/manifest
+++ b/cdist/conf/type/__prometheus_exporter/manifest
@@ -7,6 +7,7 @@ exporter="$(cat "$__object/parameter/exporter")"
 
 __user prometheus --system
 
+require=""
 case $exporter in
 	node)
 		TEXTFILES=/service/node-exporter/textfiles  # path for the textfiles collector
diff --git a/cdist/conf/type/__prometheus_server/manifest b/cdist/conf/type/__prometheus_server/manifest
index 63b7b438..8685130f 100755
--- a/cdist/conf/type/__prometheus_server/manifest
+++ b/cdist/conf/type/__prometheus_server/manifest
@@ -18,6 +18,7 @@ rule_files="$(cat "$__object/parameter/rule-files")"
 ##### INSTALL THE PACKAGE ###################################################
 
 require_pkg=""  # what to require if I want to require "the package"
+require=""
 if [ -f "$__object/parameter/install-from-backports" ]; then
 	os=$(cat "$__global/explorer/os")
 	os_version=$(cat "$__global/explorer/os_version")
diff --git a/cdist/conf/type/__rvm/gencode-remote b/cdist/conf/type/__rvm/gencode-remote
index 494c8fd8..993191c1 100755
--- a/cdist/conf/type/__rvm/gencode-remote
+++ b/cdist/conf/type/__rvm/gencode-remote
@@ -34,7 +34,7 @@ DONE
     absent)
         cat << DONE
 su - $user -c "rm -Rf \"\\\$HOME/.rvm\";
-sed '/rvm\/scripts\/rvm/d' \"\\\$HOME/.bashrc\" > \"\\\$HOME/.bashrc.cdist-tmp\"
+sed '/rvm\\/scripts\\/rvm/d' \"\\\$HOME/.bashrc\" > \"\\\$HOME/.bashrc.cdist-tmp\"
 mv \"\\\$HOME/.bashrc.cdist-tmp\" \"\\\$HOME/.bashrc\""
 DONE
     ;;
diff --git a/cdist/conf/type/__ssh_authorized_key/gencode-remote b/cdist/conf/type/__ssh_authorized_key/gencode-remote
index 82c90d61..f37aa565 100755
--- a/cdist/conf/type/__ssh_authorized_key/gencode-remote
+++ b/cdist/conf/type/__ssh_authorized_key/gencode-remote
@@ -48,7 +48,7 @@ add_line() {
    line="$2"
    # escape single quotes
    line_sanitised=$(echo "$line" | sed -e "s/'/'\"'\"'/g")
-   printf '%s' "printf '%s\n' '$line_sanitised' >> $file"
+   printf '%s' "printf '%s\\n' '$line_sanitised' >> $file"
 }
 
 
diff --git a/cdist/conf/type/__ssh_authorized_keys/manifest b/cdist/conf/type/__ssh_authorized_keys/manifest
index 8cac3449..f6ff74c3 100755
--- a/cdist/conf/type/__ssh_authorized_keys/manifest
+++ b/cdist/conf/type/__ssh_authorized_keys/manifest
@@ -61,7 +61,7 @@ _cksum() {
    echo "$1" | cksum | cut -d' ' -f 1
 }
 
-while read key; do
+while read -r key; do
    type_and_key="$(echo "$key" | tr ' ' '\n' | awk '/^(ssh|ecdsa)-[^ ]+/ { printf $1" "; getline; printf $1 }')"
    object_id="$(_cksum "$file")-$(_cksum "$type_and_key")"
    set -- "$object_id"
diff --git a/cdist/conf/type/__staged_file/gencode-local b/cdist/conf/type/__staged_file/gencode-local
index 4edaba7f..e78b50bd 100755
--- a/cdist/conf/type/__staged_file/gencode-local
+++ b/cdist/conf/type/__staged_file/gencode-local
@@ -67,10 +67,10 @@ fetch_and_prepare_file() {
    # shellcheck disable=SC2016
    printf 'cd "$tmpdir"\n'
    # shellcheck disable=SC2059
-   printf "$fetch_command > \"%s\"\n" "$source" "$source_file_name"
+   printf "$fetch_command > \"%s\"\\n" "$source" "$source_file_name"
    prepare_command="$(cat "$__object/parameter/prepare-command")"
    # shellcheck disable=SC2059
-   printf "$prepare_command > \"%s\"\n" "$source_file_name" "$stage_file"
+   printf "$prepare_command > \"%s\"\\n" "$source_file_name" "$stage_file"
    printf 'cd - >/dev/null\n'
    # shellcheck disable=SC2016
    printf 'rm -rf "$tmpdir"\n'
diff --git a/cdist/conf/type/__zypper_service/gencode-remote b/cdist/conf/type/__zypper_service/gencode-remote
index 59ffc942..4ccfe301 100755
--- a/cdist/conf/type/__zypper_service/gencode-remote
+++ b/cdist/conf/type/__zypper_service/gencode-remote
@@ -76,7 +76,7 @@ case "$state_should" in
          echo "zypper $zypper_def_opts ref"
    ;;
    absent)
-         echo "zypper $zypper_def_opts removeservice $service_id"
+         echo "zypper $zypper_def_opts removeservice $exp_id"
          echo "zypper $zypper_def_opts refs"
          echo "zypper $zypper_def_opts ref"
    ;;