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

时间:2016-09-25 07:24:22

标签: intellij-idea go

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

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

我认为问题是Wildcard.So如何在Intellij IDEA参数中使用Wildcard?

1 个答案:

答案 0 :(得分:1)

字符串pg-*.txt称为glob模式。在后一个示例中,您要求shell执行包含glob模式的给定命令。 shell将glob模式评估为预处理步骤。然后,Go程序接收已与模式匹配的文件列表。

您必须更新IntelliJ设置才能在shell中运行程序,如In JetBrains IDEs (e.g. CLion, IntelliJ), external tools cannot use globbing patterns Stack Overflow问题中所述。通过评估shell进程中的初始运行命令,程序将按预期接收参数。

另一种解决方案是将所有参数视为glob模式,并使用filepath.Glob(pattern string) (matches []string, err error)函数手动扩展提供的参数。此策略需要从程序中进行一些预处理,但对运行时环境更为宽容。您可以在此Go Playground Example中看到此类扩展的示例。