我试图从一个诡计的方案文件中调用pdflatex。这是我使用的Guile命令:
(system*
"cat" "foo.txt" "|" "pdflatex" "-jobname" "\"bar\"")这是运行该文件后得到的错误:
cat: invalid option -- 'j'
Try 'cat --help' for more information.如果我从bash运行命令,它将正常运行。
cat foo.txt | pdflatex -jobname "bar"-jobname是pdflatex的正确命令,但是system*似乎有问题。
我正在使用(GNU ) 2.2.4和pdfTeX 3.14159265-2.6-1.40.20。
发布于 2019-12-18 23:13:08
使用system,而不是system*。它接受一个字符串作为参数,并使用shell执行它,它将执行所需的管道。
(system "cat foo.txt | pdflatex -jobname 'bar'")system*不使用shell。正如手册所解释的:
system*类似于系统,但每个参数只接受一个字符串,并且不执行shell解释。该命令是使用叉和execlp执行的。因此,在不需要shell解释的情况下,此功能可能比系统更安全。
注意,您的命令是cat,因为pdflatex将文件名作为参数。您可以使用system*直接执行它。
(system* "pdflatex" "-jobname" "bar" "foo.txt")另外,在使用bar时,不需要在system*周围添加额外的引号;因为它不使用shell,所以它不解析特殊字符。
https://stackoverflow.com/questions/59400260
复制相似问题