如果特定目录有一个mount -bind,如何检查golang?

时间:2016-04-24 09:52:31

标签: go exec bind mount

我使用以下命令检查目录是否已挂载。

res := exec.Command("mount", "|", "grep", toDir, ">", "/dev/null").Run()

但无论是否安装了目录,它都会返回exit status 1

mount | grep / path / to / dir>的/ dev / null的

在命令行上工作正常。

我如何获取信息?

2 个答案:

答案 0 :(得分:1)

你可以使用语言机器来管道,比如

c1 := exec.Command("mount")
c2 := exec.Command("grep", toDir)
c2.Stdin, _ = c1.StdoutPipe()
c2.Stdout = os.DevNull
c2.Start()
c1.Run()
c2.Wait()

答案 1 :(得分:1)

由于您的命令涉及管道,您可以将其作为命令字符串传递给bash而不是直接执行它。这样的事情应该有效。

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    res, _ := exec.Command("sh", "-c", "mount | grep /home").Output()
    fmt.Printf("%s", res)
}