So umgehen Sie doppelte Anführungszeichen in \input

So umgehen Sie doppelte Anführungszeichen in \input

Ich versuche, Shell-Befehle aufzurufen, die mehrere (verschachtelte) Anführungszeichen enthalten. Dies ist beispielsweise das, was ich in die Shell schreiben würde:

$ python -c "print \"Hello World\""

das ergibt Hello World. Ich fandHier das \inputvon der Standardausgabe lesen kann, wenn es mit einem gestartet wird |. Es ist jedoch nicht überraschend, dass das Folgende nicht das erzeugt, was ich will:

\input{|"python -c "print \"Hello World\"""} 

Ähnlich zudiese Fragefunktioniert Folgendes einwandfrei:

\immediate\write18{python -c "print \string\"Hello World\string\"" > \jobname.pyout}
\input{\jobname.pyout}

erfordert aber eine temporäre Datei. Außerdem \detokenizescheint die Verwendung mit zu funktionieren \write18:

\immediate\write18{\detokenize{python -c "print \"Hello World\""} > \jobname.pyout}
\input{\jobname.pyout}

Gibt es eine Lösung, bei der keine Datei geschrieben werden muss?

verwandte Informationen