Estoy intentando llamar a comandos de shell que contienen varias comillas (anidadas). Esto es, por ejemplo, lo que escribiría en el shell:
$ python -c "print \"Hello World\""
que produce Hello World
. encontréaquí
que \input
puede leer desde la salida estándar cuando se inicia con un archivo |
. Sin embargo, no es sorprendente que lo siguiente no produzca lo que quiero:
\input{|"python -c "print \"Hello World\"""}
Similar aesta pregunta, lo siguiente funciona bien:
\immediate\write18{python -c "print \string\"Hello World\string\"" > \jobname.pyout}
\input{\jobname.pyout}
pero requiere un archivo temporal. Además, el uso \detokenize
parece funcionar con \write18
:
\immediate\write18{\detokenize{python -c "print \"Hello World\""} > \jobname.pyout}
\input{\jobname.pyout}
¿Existe alguna solución que no necesite escribir un archivo?