diff --git a/inc_pluginfunctions b/inc_pluginfunctions
index 3b4ce9e4a6d623ecf32209eeb1dfe1ef984046aa..dad46e80ad1951b54d87179bad3d32e482bcadbe 100644
--- a/inc_pluginfunctions
+++ b/inc_pluginfunctions
@@ -36,6 +36,7 @@
 # 2023-04-24  v1.8  <axel.hahn@unibe.ch>     fix unit conversion
 # 2023-05-05  v1.9  <axel.hahn@unibe.ch>     user specific counter directory
 # 2023-05-17  v1.10 <axel.hahn@unibe.ch>     ph.getOS searches in os-release first
+# 2023-06-22  v1.11 <axel.hahn@unibe.ch>     fix ph.toUnit with float values; shell fixes
 # ======================================================================
 
 
@@ -45,13 +46,9 @@ typeset -i ph_cfg__EXIT_WARNING=1
 typeset -i ph_cfg__EXIT_CRITICAL=2
 typeset -i ph_cfg__EXIT_UNKNOWN=3
 
-declare ph_perfdatafile=
-# declare -a ph_perfdata
-typeset -i ph_perfcounter=0
-
-# save command line params
-ph_cmd__params="$@"
+typeset -i ph_cfg__EXIT_CODE
 
+declare ph_perfdatafile=
 
 # abort a check and exit with status "unknown"
 function ph.abort(){
@@ -86,24 +83,24 @@ function ph.exit(){
 function ph.getOS(){
   local distro=
 
-  if [ -z $distro ]; then
+  if [ -z "$distro" ]; then
     # centos7, debian, manjaro, ubuntu
     distro=$( grep "^ID=" /etc/os-release | cut -f 2 -d "=" )
   fi
 
-  if [ -z $distro ]; then
+  if [ -z "$distro" ]; then
     distro=$( grep "^ID=" /etc/*-release | cut -f 2 -d "=" )
   fi
 
-  if [ -z $distro ]; then
+  if [ -z "$distro" ]; then
     # debian6,7, ubuntu 10,12 .. maybe unneeded.
     distro=$( head -1 /etc/issue | grep "^[a-zA-Z]" | cut -f 1 -d " " )
   fi
 
   # sanitize: lowercase, remove "
-  distro=$( echo $distro | tr -d '"' | tr [:upper:] [:lower:] )
+  distro=$( echo "$distro" | tr -d '"' | tr [:upper:] [:lower:] )
 
-  if [ -z $distro ]; then
+  if [ -z "$distro" ]; then
     ph.abort "UNKNOWN: distro was not detected."
     
   fi
@@ -190,19 +187,19 @@ function ph.hasParamoption(){
 # param  integer|string  0..3 or ok|warning|critical|unknown
 function ph.setStatus(){
   case $1 in
-    $ph_cfg__EXIT_OK|"ok"):
+    "$ph_cfg__EXIT_OK"|"ok"):
         ph_cfg__EXIT_CODE=$ph_cfg__EXIT_OK
         ph_cfg__EXIT_STATUS="OK"
       ;;
-    $ph_cfg__EXIT_WARNING|"warning"):
+    "$ph_cfg__EXIT_WARNING"|"warning"):
         ph_cfg__EXIT_CODE=$ph_cfg__EXIT_WARNING
         ph_cfg__EXIT_STATUS="WARNING"
       ;;
-    $ph_cfg__EXIT_CRITICAL|"critical"):
+    "$ph_cfg__EXIT_CRITICAL"|"critical"):
         ph_cfg__EXIT_CODE=$ph_cfg__EXIT_CRITICAL
         ph_cfg__EXIT_STATUS="CRITICAL"
       ;;
-    $ph_cfg__EXIT_UNKNOWN|"unknown"):
+    "$ph_cfg__EXIT_UNKNOWN"|"unknown"):
         ph_cfg__EXIT_CODE=$ph_cfg__EXIT_UNKNOWN
         ph_cfg__EXIT_STATUS="UNKNOWN"
       ;;
@@ -267,7 +264,7 @@ function ph.status(){
 # param  value  with ending scale [none]=1 K=Kilo M=Mega G=Giga
 function ph._getExp(){
     local _unit
-    _unit=$( echo $1 | sed "s#[0-9]##g" )
+    _unit=${1//[0-9\.]/}
 
     test -z "$_unit" && echo 1
 
@@ -300,11 +297,11 @@ function ph.toUnit(){
     local _value=$1
     local _unit=$2
 
-    local _multiply=`ph._getExp $_value`
-    local _divisor=`ph._getExp $_unit`
+    local _multiply; _multiply=$( ph._getExp "$_value" )
+    local _divisor;  _divisor=$(  ph._getExp "$_unit"  )
 
     # echo "DEBUG ... $_divisor .. $_multiply"
-    echo "$(echo $_value | tr -d "[:alpha:]" )*${_multiply}/$_divisor" | bc
+    echo "$(echo "$_value" | tr -d "[:alpha:]" )*${_multiply}/$_divisor" | bc
     
 }
 
@@ -346,7 +343,7 @@ function ph._getStorefile(){
 function ph._savecounter() {
         local varName=$1
         local value=$2
-        local sStoreFile=$(ph._getStorefile "${varName}")
+        local sStoreFile; sStoreFile=$(ph._getStorefile "${varName}")
         #echo "DEBUG: `date +%s`:${value} \> ${sStoreFile}"
         # echo "`date +%s`:${value}" > "${sStoreFile}"
         echo ${value} > "${sStoreFile}"
@@ -357,7 +354,7 @@ function ph._savecounter() {
 # param   string  varName   variable name of a value to store
 function ph._getageoflastvalue() {
         local varName=$1
-        local sStoreFile=$(ph._getStorefile "${varName}")
+        local sStoreFile; sStoreFile=$(ph._getStorefile "${varName}")
         ph.getFileAge "${sStoreFile}"
         # local ilast=`cat "${sStoreFile}" 2>/dev/null | cut -f 1 -d ":" `
         # local inow=`date +%s`
@@ -368,7 +365,7 @@ function ph._getageoflastvalue() {
 # param   string  varName   variable name of a value to store
 function ph._readlastvalue(){
         local varName=$1
-        local sStoreFile=$(ph._getStorefile "${varName}")
+        local sStoreFile; sStoreFile=$(ph._getStorefile "${varName}")
         # cat "${sStoreFile}" 2>/dev/null | cut -f 2 -d ":"
         cat "${sStoreFile}" 2>/dev/null
 }
@@ -420,11 +417,11 @@ function ph.perfdeltaspeed(){
                         # retvalue="[reset data]"
                         retvalue=""
                 else
-                        local iage=$(ph._getageoflastvalue "${varName}")
-                        test $iage = 0 && iage=1
+                        local iage; iage=$(ph._getageoflastvalue "${varName}")
+                        test "$iage" = "0" && iage=1
 
-                        local delta=$(echo "${value}-$lastvalue" | bc $bcParam )
-                        local deltaspeed=$(echo "${delta}*${deltaFactor}/(${iage})" | bc $bcParam)
+                        local delta; delta=$(echo "${value}-$lastvalue" | bc $bcParam )
+                        local deltaspeed; deltaspeed=$(echo "${delta}*${deltaFactor}/(${iage})" | bc $bcParam)
                         retvalue=$deltaspeed
                 fi
         fi