doujuyang1764 2018-09-11 17:04
浏览 773
已采纳

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

I want to run the following bash command using golang's exec.Command()

ls > sample.txt

For this I write

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

But this doesn't seem to work. I know I can write to a file by using

exec.Command().StdoutPipe()

But I want to write sepcifically in that manner. Any idea how I can do it in golang?

</div>
  • 写回答

1条回答 默认 最新

  • doucongmishang2385 2018-09-11 17:13
    关注

    From the docs:

    Unlike the "system" library call from C and other languages, the os/exec package intentionally does not invoke the system shell and does not expand any glob patterns or handle other expansions, pipelines, or redirections typically done by shells. The package behaves more like C's "exec" family of functions. To expand glob patterns, either call the shell directly, taking care to escape any dangerous input, or use the path/filepath package's Glob function. To expand environment variables, use package os's ExpandEnv.

    With that in hand, my best guess to what you're trying to do is running bash and passing your command as an argument to it:

    out, err := exec.Command("bash", "-c", cmd)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办