Estou tentando chamar comandos shell que contêm várias aspas (aninhadas). Isto é, por exemplo, o que eu escreveria no shell:
$ python -c "print \"Hello World\""
que produz Hello World
. eu encontreiaqui
que \input
pode ler a saída padrão quando iniciado com um arquivo |
. No entanto, não é surpreendente que o seguinte não produza o que desejo:
\input{|"python -c "print \"Hello World\"""}
Igual aessa questão, o seguinte funciona bem:
\immediate\write18{python -c "print \string\"Hello World\string\"" > \jobname.pyout}
\input{\jobname.pyout}
mas requer um arquivo temporário. Além disso, using \detokenize
parece funcionar com \write18
:
\immediate\write18{\detokenize{python -c "print \"Hello World\""} > \jobname.pyout}
\input{\jobname.pyout}
Existe uma solução que não precisa gravar um arquivo?