我在运行配置中使用了“尝试添加参数”。
我加上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参数中使用通配符?
发布于 2016-09-25 19:43:39
字符串pg-*.txt被称为格罗布模式。在后一个例子中,您要求shell执行包含glob模式的给定命令。外壳计算glob模式作为预处理步骤。然后,Go程序接收模式匹配的文件列表。
您必须更新IntelliJ设置才能在shell中运行程序,如在JetBrains IDE(例如CLion、IntelliJ)中,外部工具不能使用全局模式堆栈溢出问题中所述。通过计算shell进程中的初始go运行命令,您的程序将收到预期的参数。
另一种解决方案是将所有参数视为glob模式,并利用filepath.Glob(pattern string) (matches []string, err error)函数对提供的参数进行手动展开。这个策略需要程序进行更多的预处理,但对运行时环境更宽容。您可以在这个Go游乐场示例中看到这种扩展的一个例子。
https://stackoverflow.com/questions/39684417
复制相似问题