diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
index 8701242..b39e14e 100644
--- a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -4,134 +4,134 @@
 
 
 # #########################################################
-d2v () {
-# usage:   d2v <decimal volts>
+function d2v() {
+    # usage:   d2v <decimal volts>
 
-echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
+    echo "$1" | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
 }
 
 
 # #########################################################
-v2d () {
-# usage:   v2d <hex val>
+function v2d() {
+    # usage:   v2d <hex val>
 
-printf "	%0.3fV" `echo $1 | awk '{print $1 / 256}'`
+    printf "	%0.3fV" "$(echo "$1" | awk '{print $1 / 256}')"
 }
 
 
 # #########################################################
-i2d () {
-# usage:  i2d <hex val> <current divisor>
+function i2d() {
+    # usage:  i2d <hex val> <current divisor>
 
-# parse current mantisa and exponent
-# format: SEEE ESMM MMMM MMMM
-let e=$1/0x800
-let esign=e/0x10
-let m=$1\&0x07FF
-let msign=m/0x0400
+    # parse current mantisa and exponent
+    # format: SEEE ESMM MMMM MMMM
+    e=$(( $1/0x800 ))
+    esign=$(( e/0x10 ))
+    m=$(( $1 & 0x07FF ))
+    msign=$(( m/0x0400 ))
 
-if [ $msign -eq 1 ]
-then
-  # calc ones compliment
-  let m=($m^0x07FF)+1
-  m="-$m"
-fi
-if [ $esign -eq 1 ]
-then
-  # calc ones compliment
-  let e=(e^0x1F)+1
-  e="-$e"
-fi
-printf "	%0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2) / $3}'`
+    if [ $msign -eq 1 ]
+    then
+        # calc ones compliment
+        m=$(( (m^0x07FF)+1 ))
+        m=$(( -m ))
+    fi
+    if [ $esign -eq 1 ]
+    then
+        # calc ones compliment
+        e=$(( (e^0x1F)+1 ))
+        e=$(( -e ))
+    fi
+    printf "	%0.3fA\n" "$(echo $m $e "$2" | awk '{print ($1 * 2^$2) / $3}')"
 }
 
 
 # #########################################################
-rw_vc () {
-# usage:   rw_vc <bus> <addr> <current divisor> <channel> <value>
+function rw_vc() {
+    # usage:   rw_vc <bus> <addr> <current divisor> <channel> <value>
 
-# select channel
-if [ $4 != "x" ]
-then
-  i2cset -y $1 $2 0 $4 b
-fi
+    # select channel
+    if [ "$4" != "x" ]
+    then
+        i2cset -y "$1" "$2" 0 "$4" b
+    fi
 
-# write new voltage set point
-if [ ! -e $5 ]
-then
-  i2cset -y $1 $2 0x21 `d2v $5` w
-fi
+    # write new voltage set point
+    if [ ! -e "$5" ]
+    then
+        i2cset -y "$1" "$2" 0x21 "$(d2v "$5")" w
+    fi
 
-# print voltage set point
-v2d `i2cget -y $1 $2 0x21 w`
+    # print voltage set point
+    v2d "$(i2cget -y "$1" "$2" 0x21 w)"
 
-# print voltage
-v2d `i2cget -y $1 $2 0x8B w`
+    # print voltage
+    v2d "$(i2cget -y "$1" "$2" 0x8B w)"
 
-# print current
-i2d `i2cget -y $1 $2 0x8C w` $3
+    # print current
+    i2d "$(i2cget -y "$1" "$2" 0x8C w)" "$3"
 
-# default back to channel 0
-if [ $4 != "x" ]
-then
-  i2cset -y $1 $2 0 0 b
-fi
+    # default back to channel 0
+    if [ "$4" != "x" ]
+    then
+        i2cset -y "$1" "$2" 0 0 b
+    fi
 }
 
 
 # #########################################################
 # Main
 
-if [ -e $1 ]
+if [ -e "$1" ]
 then
-  $0 vdda vcsa vdna vioa vddb vcsb vdnb viob
-  exit
+    $0 vdda vcsa vdna vioa vddb vcsb vdnb viob
+    exit
 fi
 
-if [ $1 == "-h" ]
+if [ "$1" == "-h" ]
 then
-  echo "  Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
-  echo "    rail: vdda vcsa vdna vioa vddb vcsb vdnb viob"
-  echo "    value: volts"
-  echo
-  echo "    e.g., vrm vioa=1.0 viob=1.0"
-  echo
-  exit
+    echo "  Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
+    echo "    rail: vdda vcsa vdna vioa vddb vcsb vdnb viob"
+    echo "    value: volts"
+    echo
+    echo "    e.g., vrm vioa=1.0 viob=1.0"
+    echo
+    exit
 fi
 
 echo "rail	set	read	current"
 echo "-------	------- ------- -------"
-for param in ${@:1}
+for param in "${@:1}"
 do
-  rail=`echo $param | cut -d'=' -f 1`
-  val=`echo ${param}= | cut -d'=' -f 2`
-  echo -n "$rail"
-  case "$rail" in
-    vdda)
-      rw_vc 4 0x70 2 0 $val
-      ;;
-    vddb)
-      rw_vc 5 0x70 2 0 $val
-      ;;
-    vcsa)
-      rw_vc 4 0x70 4 1 $val
-      ;;
-    vcsb)
-      rw_vc 5 0x70 4 1 $val
-      ;;
-    vdna)
-      rw_vc 4 0x73 2 0 $val
-      ;;
-    vdnb)
-      rw_vc 5 0x73 2 0 $val
-      ;;
-    vioa)
-      rw_vc 4 0x73 2 1 $val
-      ;;
-    viob)
-      rw_vc 5 0x73 2 1 $val
-      ;;
-    *)
-      echo "	non-existant"
-  esac
+    rail=$(echo "$param" | cut -d'=' -f 1)
+    val=$(echo "${param}=" | cut -d'=' -f 2)
+    echo -n "$rail"
+    case "$rail" in
+        vdda)
+            rw_vc 4 0x70 2 0 "$val"
+            ;;
+        vddb)
+            rw_vc 5 0x70 2 0 "$val"
+            ;;
+        vcsa)
+            rw_vc 4 0x70 4 1 "$val"
+            ;;
+        vcsb)
+            rw_vc 5 0x70 4 1 "$val"
+            ;;
+        vdna)
+            rw_vc 4 0x73 2 0 "$val"
+            ;;
+        vdnb)
+            rw_vc 5 0x73 2 0 "$val"
+            ;;
+        vioa)
+            rw_vc 4 0x73 2 1 "$val"
+            ;;
+        viob)
+            rw_vc 5 0x73 2 1 "$val"
+            ;;
+        *)
+            echo "	non-existant"
+    esac
 done
diff --git a/meta-ibm/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-ibm/recipes-phosphor/chassis/vrm-control/vrm-control.sh
index c67e244..b0b6326 100644
--- a/meta-ibm/recipes-phosphor/chassis/vrm-control/vrm-control.sh
+++ b/meta-ibm/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -4,152 +4,152 @@
 
 
 # #########################################################
-d2v () {
-# usage:   d2v <decimal volts>
+function d2v() {
+    # usage:   d2v <decimal volts>
 
-echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
+    echo "$1" | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
 }
 
 
 # #########################################################
-v2d () {
-# usage:   v2d <hex val>
+function v2d() {
+    # usage:   v2d <hex val>
 
-printf "	%0.3fV" `echo $1 | awk '{print $1 / 256}'`
+    printf "	%0.3fV" "$(echo "$1" | awk '{print $1 / 256}')"
 }
 
 
 # #########################################################
-i2d () {
-# usage:  i2d <hex val> <current divisor>
+function i2d() {
+    # usage:  i2d <hex val> <current divisor>
 
-# parse current mantisa and exponent
-# format: SEEE ESMM MMMM MMMM
-let e=$1/0x800
-let esign=e/0x10
-let m=$1\&0x07FF
-let msign=m/0x0400
+    # parse current mantisa and exponent
+    # format: SEEE ESMM MMMM MMMM
+    e=$(( $1/0x800 ))
+    esign=$(( e/0x10 ))
+    m=$(( $1 & 0x07FF ))
+    msign=$(( m/0x0400 ))
 
-if [ $msign -eq 1 ]
-then
-  # calc ones compliment
-  let m=($m^0x07FF)+1
-  m="-$m"
-fi
-if [ $esign -eq 1 ]
-then
-  # calc ones compliment
-  let e=(e^0x1F)+1
-  e="-$e"
-fi
-printf "	%0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2)}'`
+    if [ $msign -eq 1 ]
+    then
+        # calc ones compliment
+        m=$(( (m^0x07FF)+1 ))
+        m=$(( -m ))
+    fi
+    if [ $esign -eq 1 ]
+    then
+        # calc ones compliment
+        e=$(( (e^0x1F)+1 ))
+        e=$(( -e ))
+    fi
+    printf "	%0.3fA\n" "$(echo $m $e "$2" | awk '{print ($1 * 2^$2)}')"
 }
 
 
 # #########################################################
-rw_vc () {
-# usage:   rw_vc <bus> <addr> <current divisor> <channel> <value>
+function rw_vc() {
+    # usage:   rw_vc <bus> <addr> <current divisor> <channel> <value>
 
-# select channel
-if [ $4 != "x" ]
-then
-  i2cset -y $1 $2 0 $4 b
-fi
+    # select channel
+    if [ "$4" != "x" ]
+    then
+        i2cset -y "$1" "$2" 0 "$4" b
+    fi
 
-# write new voltage set point
-if [ ! -e $5 ]
-then
-  i2cset -y $1 $2 0x21 `d2v $5` w
-fi
+    # write new voltage set point
+    if [ ! -e "$5" ]
+    then
+        i2cset -y "$1" "$2" 0x21 "$(d2v "$5")" w
+    fi
 
-# print voltage set point
-v2d `i2cget -y $1 $2 0x21 w`
+    # print voltage set point
+    v2d "$(i2cget -y "$1" "$2" 0x21 w)"
 
-# print voltage
-v2d `i2cget -y $1 $2 0x8B w`
+    # print voltage
+    v2d "$(i2cget -y "$1" "$2" 0x8B w)"
 
-# print current
-i2d `i2cget -y $1 $2 0x8C w` $3
+    # print current
+    i2d "$(i2cget -y "$1" "$2" 0x8C w)" "$3"
 
-# default back to channel 0
-if [ $4 != "x" ]
-then
-  i2cset -y $1 $2 0 0 b
-fi
+    # default back to channel 0
+    if [ "$4" != "x" ]
+    then
+        i2cset -y "$1" "$2" 0 0 b
+    fi
 }
 
 
 # #########################################################
 # Main
 
-if [ -e $1 ]
+if [ -e "$1" ]
 then
-  $0 vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb
-  exit
+    $0 vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb
+    exit
 fi
 
-if [ $1 == "-h" ]
+if [ "$1" == "-h" ]
 then
-  echo "  Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
-  echo "    rail: vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb vdnd viod"
-  echo "    value: volts"
-  echo
-  echo "    e.g., vrm vioa=1.0 viob=1.0"
-  echo
-  exit
+    echo "  Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
+    echo "    rail: vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb vdnd viod"
+    echo "    value: volts"
+    echo
+    echo "    e.g., vrm vioa=1.0 viob=1.0"
+    echo
+    exit
 fi
 
 echo "rail	set	read	current"
 echo "-------	------- ------- -------"
-for param in ${@:1}
+for param in "${@:1}"
 do
-  rail=`echo $param | cut -d'=' -f 1`
-  val=`echo ${param}= | cut -d'=' -f 2`
-  echo -n "$rail"
-  case "$rail" in
-    vdda)
-      rw_vc 4 0x70 2 0 $val
-      ;;
-    vddb)
-      rw_vc 5 0x70 2 0 $val
-      ;;
-    vcsa)
-      rw_vc 4 0x70 4 1 $val
-      ;;
-    vcsb)
-      rw_vc 5 0x70 4 1 $val
-      ;;
-    vdna)
-      rw_vc 4 0x71 2 0 $val
-      ;;
-    vdnb)
-      rw_vc 5 0x71 2 0 $val
-      ;;
-    vioa)
-      rw_vc 4 0x40 2 x $val
-      ;;
-    viob)
-      rw_vc 5 0x40 2 x $val
-      ;;
-    vddra)
-      rw_vc 4 0x71 2 1 $val
-      ;;
-    vddrb)
-      rw_vc 5 0x71 2 1 $val
-      ;;
-    vppa)
-      rw_vc 12 0x41 2 x $val
-      ;;
-    vppb)
-      rw_vc 13 0x41 2 x $val
-      ;;
-    vdnd)
-      rw_vc 2 0x70 2 0 $val
-      ;;
-    viod)
-      rw_vc 2 0x70 2 1 $val
-      ;;
-    *)
-      echo "	non-existant"
-  esac
+    rail=$(echo "$param" | cut -d'=' -f 1)
+    val=$(echo "${param}=" | cut -d'=' -f 2)
+    echo -n "$rail"
+    case "$rail" in
+        vdda)
+            rw_vc 4 0x70 2 0 "$val"
+            ;;
+        vddb)
+            rw_vc 5 0x70 2 0 "$val"
+            ;;
+        vcsa)
+            rw_vc 4 0x70 4 1 "$val"
+            ;;
+        vcsb)
+            rw_vc 5 0x70 4 1 "$val"
+            ;;
+        vdna)
+            rw_vc 4 0x71 2 0 "$val"
+            ;;
+        vdnb)
+            rw_vc 5 0x71 2 0 "$val"
+            ;;
+        vioa)
+            rw_vc 4 0x40 2 x "$val"
+            ;;
+        viob)
+            rw_vc 5 0x40 2 x "$val"
+            ;;
+        vddra)
+            rw_vc 4 0x71 2 1 "$val"
+            ;;
+        vddrb)
+            rw_vc 5 0x71 2 1 "$val"
+            ;;
+        vppa)
+            rw_vc 12 0x41 2 x "$val"
+            ;;
+        vppb)
+            rw_vc 13 0x41 2 x "$val"
+            ;;
+        vdnd)
+            rw_vc 2 0x70 2 0 "$val"
+            ;;
+        viod)
+            rw_vc 2 0x70 2 1 "$val"
+            ;;
+        *)
+            echo "	non-existant"
+    esac
 done
