Wie implementiert man einen stdin, stdout Wrapper?

Ich habe ein interaktives Programm, das stdin und stdout ausführt. Ich muss einen Wrapper erstellen, der X an die Standardeingabe sendet. Überprüfen Sie, ob Y gedruckt wird, und leiten Sie dann die Standardeingabe und die Standardausgabe des Wrappers an die Standardeingabe und die Standardausgabe des Programms weiter, so als würde das Programm direkt ausgeführt.

Wie setzt man das um? X und Y können fest codiert werden. Bash? Python?

Bearbeiten: Ich kann das Programm nicht zweimal ausführen. Es muss eine Instanz sein. Hier ist der Pseudocode:

def wrap(cmd, in, expected_out):
  p = exec(cmd)
  p.writeToStdin(in)
  out = p.readBytes (expected_out.size())
  if (out != expected_out) return fail;
  # if the above 4 lines would be absent or (in == "" and out == "")
  # then this wrapper would be exactly like direct execution of cmd
  connectpipe (p.stdout, stdout)
  connectpipe (stdin, p.stdin)
  p.continueExecution() 

Antworten auf die Frage(4)

Ihre Antwort auf die Frage