作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我尝试在运行配置中添加参数。
我添加了 master sequential pg-*.txt
。但是当我开始运行时。错误出来了。
/usr/local/go/bin/go run /home/asus/dev/6.824/src/main/wc.go master sequential pg-*.txt
master: Starting Map/Reduce task wcseq
panic: open pg-*.txt: no such file or directory
但是我在终端中使用命令就OK了。
~/dev/6.824/src/main$ /usr/local/go/bin/go run /home/asus/dev/6.824/src/main/wc.go master sequential pg-*.txt
master: Starting Map/Reduce task wcseq
Merge: read mrtmp.wcseq-res-0
Merge: read mrtmp.wcseq-res-1
Merge: read mrtmp.wcseq-res-2
master: Map/Reduce task completed
我认为问题出在通配符上。那么如何在 Intellij IDEA 参数中使用通配符呢?
最佳答案
字符串 pg-*.txt
被称为 glob图案。在后一个示例中,您要求 shell 执行包含 glob 模式的给定命令。 shell 将 glob 模式评估为预处理步骤。然后,Go 程序会收到与该模式匹配的文件列表。
您必须更新您的 IntelliJ 设置才能在 shell 中运行该程序,如 In JetBrains IDEs (e.g. CLion, IntelliJ), external tools cannot use globbing patterns 中所述。堆栈溢出问题。通过在 shell 进程中评估初始 go run 命令,您的程序将按预期接收参数。
另一种解决方案是将所有参数视为 glob 模式并利用 filepath.Glob(pattern string) (matches []string, err error)
函数手动扩展提供的参数。此策略需要您的程序进行更多的预处理,但对运行时环境的容忍度更高。您可以在 Go Playground Example 中看到这种扩展的示例.
关于intellij-idea - 如何在 Intellij IDEA 参数中使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39684417/
我是一名优秀的程序员,十分优秀!