首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pdflatex -jobname的Guile方案系统*

使用pdflatex -jobname的Guile方案系统*
EN

Stack Overflow用户
提问于 2019-12-18 21:31:08
回答 1查看 147关注 0票数 0

我试图从一个诡计的方案文件中调用pdflatex。这是我使用的Guile命令:

代码语言:javascript
复制
(system*
 "cat" "foo.txt" "|" "pdflatex" "-jobname" "\"bar\"")

这是运行该文件后得到的错误:

代码语言:javascript
复制
cat: invalid option -- 'j'
Try 'cat --help' for more information.

如果我从bash运行命令,它将正常运行。

代码语言:javascript
复制
cat foo.txt | pdflatex -jobname "bar"

-jobnamepdflatex的正确命令,但是system*似乎有问题。

我正在使用(GNU ) 2.2.4和pdfTeX 3.14159265-2.6-1.40.20。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 23:13:08

使用system,而不是system*。它接受一个字符串作为参数,并使用shell执行它,它将执行所需的管道。

代码语言:javascript
复制
(system "cat foo.txt | pdflatex -jobname 'bar'")

system*不使用shell。正如手册所解释的:

system*类似于系统,但每个参数只接受一个字符串,并且不执行shell解释。该命令是使用叉和execlp执行的。因此,在不需要shell解释的情况下,此功能可能比系统更安全。

注意,您的命令是cat,因为pdflatex将文件名作为参数。您可以使用system*直接执行它。

代码语言:javascript
复制
(system* "pdflatex" "-jobname" "bar" "foo.txt")

另外,在使用bar时,不需要在system*周围添加额外的引号;因为它不使用shell,所以它不解析特殊字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59400260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档