为了账号安全,请及时绑定邮箱和手机立即绑定

如何执行shell内置命令

如何执行shell内置命令

C#
叮当猫咪 2021-11-29 15:54:48
我试图找出 Linux 上是否存在一个程序,我找到了这篇文章。我尝试从我的 go 程序中执行它,它一直给我一个错误,说它在我的 $PATH 中找不到“命令”,这是意料之中的,因为它是 linux 中的内置命令而不是二进制文件。所以我的问题是如何从 go 程序中执行 linux 的内置命令?exec.Command("command", "-v", "foo")错误:exec:“命令”:在 $PATH 中找不到可执行文件
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

就像那篇文章所说的那样,“命令”是内置的 shell。您可以在 go via 中本地执行此操作exec.LookPath

如果必须,您可以使用系统which二进制文件,也可以command从 shell 中执行,

exec.Command("/bin/bash", "-c", "command -v foo")


查看完整回答
反对 回复 2021-11-29
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

或者,如果它是一个不需要参数的内置命令,您可以执行以下操作:


package main


import (

    "fmt"

    "log"

    "os/exec"

)


func main() {

    out, err := exec.Command("uuidgen").Output()

    if err != nil {

        log.Fatal(err)

    }

    fmt.Printf("%s", out)

}

这将打印出一个唯一的 ID,如下所示: 4cdb277e-3c25-48ef-a367-ba734ce407c1 就像直接从命令行调用它一样。


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信