我想使用golang的exec.Command()运行以下bash命令
ls > sample.txt
为此我写
_,err:=exec.Command("ls",">","sample.txt").Output()
但这似乎不起作用。我知道我可以使用
写入文件exec.Command().StdoutPipe()
但是我想以这种方式单独写。知道如何在golang中做到吗?
答案 0 :(得分:1)
从文档中
与使用C和其他语言进行的“系统”库调用不同,os / exec软件包有意不调用系统外壳程序,也不扩展任何glob模式或处理其他通常由外壳程序完成的扩展,管道或重定向。程序包的行为更像C的“ exec”函数系列。要扩展glob模式,请直接调用外壳程序,注意避免任何危险的输入,或者使用path / filepath包的Glob函数。要扩展环境变量,请使用软件包os的ExpandEnv。
有了这个,我对您要执行的操作的最佳猜测是运行bash并将命令作为参数传递给它:
class Board(val name: String) {
var age: Int = 0
}