11

我正在构建一个使用选项应用库的命令行参数解析器的 Haskell 程序。由于我使用堆栈来构建和测试我的项目,因此我想使用堆栈 exec 执行传递命令行参数的程序,例如

stack exec myprogram-exe -i myfile.txt

但是当我尝试执行时,堆栈给了我以下消息:

Usage: stack exec CMD [-- ARGS (e.g. stack ghc -- X.hs -o x)] ([--plain] |
              ([--ghc-package-path] | [--no-ghc-package-path])
              ([--stack-exe] | [--no-stack-exe]) [--package ARG])

有没有一种方法可以将命令行参数传递给使用 Stack 执行的程序?

4

2 回答 2

16

像这样的东西应该工作:

stack exec -- myprogram-exe -i myfile.txt

Michael Snoyman 所说的另一种方式应该是这样的:

$(stack exec which foo)
于 2015-09-10T01:43:41.863 回答
1

您还可以stack build--exec标志一起使用以在一个命令中构建和执行。可执行文件的参数必须包含在 exec 参数中。

$ stack build --exec "myexecutable arg1 arg2"
于 2019-03-25T09:15:57.370 回答