如何在Intellij IDEA参数中使用通配符

范妮ZMN:

我在运行配置中使用try add参数。

我加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

但是我在终端使用命令就可以了。

~/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模式。外壳程序将全局模式评估为预处理步骤。然后,Go程序会收到已与该模式匹配的文件列表。

您将必须更新您的IntelliJ设置才能在Shell中运行该程序,如在JetBrains IDE(例如CLion,IntelliJ)中所述,外部工具无法使用通配符模式堆栈溢出问题。通过评估Shell进程中的初始go run命令,您的程序将按预期接收参数。

另一种解决方案是将所有参数视为全局模式,并利用该filepath.Glob(pattern string) (matches []string, err error)函数手动扩展提供的参数。该策略需要对程序进行更多的预处理,但对运行时环境的容忍度更高。您可以在“ Go Playground示例”中看到这种扩展的示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章