\input で二重引用符をエスケープする方法

\input で二重引用符をエスケープする方法

複数の(ネストされた)引用符を含むシェル コマンドを呼び出そうとしています。たとえば、シェルに次のように記述します。

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

生成されますHello World。私は発見しましたここ\inputで開始すると標準出力から読み取る ことができます|。ただし、次のような結果が期待どおりに生成されないのは当然です。

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

に似ているこの質問、以下は正常に動作します:

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

ただし、一時ファイルが必要です。また、以下を使用する\detokenizeと動作するようです\write18:

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

ファイルを書き込む必要のないソリューションはありますか?

関連情報