加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

管道输入命令行到bash解释器

发布时间:2020-12-15 21:07:10 所属栏目:安全 来源:网络整理
导读:我正在用一个解释器编写一个小程序,我想将我的 shell无法识别的任何命令用于bash,并打印输出,就好像写在普通终端中一样. func RunExtern(c *shell.Cmd) (string,os.Error) { cmd := exec.Command(c.Cmd(),c.Args()...) out,err := cmd.Output() return strin
我正在用一个解释器编写一个小程序,我想将我的 shell无法识别的任何命令用于bash,并打印输出,就好像写在普通终端中一样.

func RunExtern(c *shell.Cmd) (string,os.Error) {   
    cmd := exec.Command(c.Cmd(),c.Args()...)
    out,err := cmd.Output()

    return string(out),err
}

这是我到目前为止所写的内容,但它只用它的args执行一个程序,我想将整行发送给bash并获取输出,任何想法如何做?

解决方法

例如,要列出列中的目录条目,

package main

import (
    "exec"
    "fmt"
    "os"
)

func BashExec(argv []string) (string,os.Error) {
    cmdarg := ""
    for _,arg := range argv {
        cmdarg += `"` + arg + `" `
    }
    cmd := exec.Command("bash","-c",cmdarg)
    out,err := cmd.Output()
    return string(out),err
}

func main() {
    out,err := BashExec([]string{`ls`,`-C`})
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(out)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读