code: def run_shell_command(cmdstr, **subprocess_kwargs):
      
      if 'shell' in subprocess_kwargs and not subprocess_kwargs['shell']:
          raise ProgramError(
                  'The "shell" kwarg may be omitted, but if '
                  'provided it must be True.')
      else:
          subprocess_kwargs['shell'] = True
  
      if 'executable' not in subprocess_kwargs:
          subprocess_kwargs['executable'] = os.getenv('SHELL')
  
      for stream in ['stdin', 'stdout', 'stderr']:
          subprocess_kwargs.setdefault(stream, subprocess.PIPE)
      subprocess_kwargs = alter_subprocess_kwargs_by_platform(
              **subprocess_kwargs)
      return subprocess.Popen(cmdstr, **subprocess_kwargs)
docs: Execute the given shell command.
      
      Note that *args and **kwargs will be passed to the subprocess call.
  
      If 'shell' is given in subprocess_kwargs it must be True,
      otherwise ProgramError will be raised.
      .
      If 'executable' is not given in subprocess_kwargs, it will
      be set to the value of the SHELL environment variable.
  
      Note that stdin, stdout and stderr will be set by default
      to PIPE unless specified in subprocess_kwargs.
  
      :str cmdstr: The string run as a shell command.
      :subprocess_kwargs: These will be passed to subprocess.Popen.