【问题标题】:How do I pass command line arguments to stack exec如何将命令行参数传递给堆栈 exec
【发布时间】:2015-09-09 14:56:58
【问题描述】:

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

stack exec myprogram-exe -i myfile.txt

但是当我尝试执行时,Stack 给了我以下信息:

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 执行的程序?

【问题讨论】:

  • 试试这个stack exec -- myprogram-exe -i myfile.txt ?
  • @sibi 这是正确的方法。你能把它写下来作为答案吗? $(stack exec which foo) 也适用于 Unix shell

标签: haskell haskell-stack


【解决方案1】:

这样的事情应该可以工作:

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

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

$(stack exec which foo)

【讨论】:

    【解决方案2】:

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

    $ stack build --exec "myexecutable arg1 arg2"
    

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 2020-08-02
      相关资源
      最近更新 更多