code: def make_value_from_shell(self, param, value_type, function):
          
          try:
              value = check_output(param, shell=True).rstrip()
          except CalledProcessError:
              # for value_type of 'bool' we return False on error code
              if value_type == "bool":
                  value = False
              else:
                  if self.py3_wrapper:
                      self.py3_wrapper.report_exception(
                          msg="shell: called with command `%s`" % param
                      )
                  self.notify_user("shell script exited with an error")
                  value = None
          else:
              # if the value_type is 'bool' then we return True for success
              if value_type == "bool":
                  value = True
              else:
                  # convert bytes to unicode
                  value = value.decode("utf-8")
                  value = self.value_convert(value, value_type)
          return value
docs: run command in the shell