code: def execute(cls,
                  cmd,
                  arguments="",
                  shell=False,
                  cwd=None,
                  traceflag=True,
                  witherror=True):
          
          # print "--------------"
          result = None
          terminal = cls.terminal_type()
          # print cls.command
          os_command = [cmd]
          if terminal in ['linux', 'windows']:
              os_command = [cmd]
          elif 'cygwin' in terminal:
              if not cls.command_exists(cmd):
                  print("ERROR: the command could not be found", cmd)
                  return
              else:
                  os_command = [cls.command[cls.operating_system()][cmd]]
  
          if isinstance(arguments, list):
              os_command = os_command + arguments
          elif isinstance(arguments, tuple):
              os_command = os_command + list(arguments)
          elif isinstance(arguments, str):
              os_command = os_command + arguments.split()
          else:
              print("ERROR: Wrong parameter type", type(arguments))
  
          if cwd is None:
              cwd = os.getcwd()
          try:
              if shell:
                  result = subprocess.check_output(
                      os_command,
                      stderr=subprocess.STDOUT,
                      shell=True,
                      cwd=cwd)
              else:
                  result = subprocess.check_output(
                      os_command,
                      # shell=True,
                      stderr=subprocess.STDOUT,
                      cwd=cwd)
          except:
              if witherror:
                  Console.error("problem executing subprocess",
                                traceflag=traceflag)
          if result is not None:
              result = result.strip().decode()
          return result
docs: Run Shell command
  
          :param witherror: if set to False the error will not be printed
          :param traceflag: if set to true the trace is printed in case of an error
          :param cwd: the current working directory in whcih the command is supposed to be executed.
          :param shell: if set to true the subprocess is called as part of a shell
          :param cmd: command to run
          :param arguments: we do not know yet
          :return: