Golang exec.Command()bash命令不起作用

时间:2018-09-11 17:04:48

标签: bash go

我想使用golang的exec.Command()运行以下bash命令

ls > sample.txt

为此我写

_,err:=exec.Command("ls",">","sample.txt").Output()

但这似乎不起作用。我知道我可以使用

写入文件
exec.Command().StdoutPipe()

但是我想以这种方式单独写。知道如何在golang中做到吗?

1 个答案:

答案 0 :(得分:1)

从文档中

  

与使用C和其他语言进行的“系统”库调用不同,os / exec软件包有意不调用系统外壳程序,也不扩展任何glob模式或处理其他通常由外壳程序完成的扩展,管道或重定向。程序包的行为更像C的“ exec”函数系列。要扩展glob模式,请直接调用外壳程序,注意避免任何危险的输入,或者使用path / filepath包的Glob函数。要扩展环境变量,请使用软件包os的ExpandEnv。

有了这个,我对您要执行的操作的最佳猜测是运行bash并将命令作为参数传递给它:

class Board(val name: String) {
var age: Int = 0
}