我正在用一个解释器编写一个小程序,我想将我的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
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所写的内容,但它只用它的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)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
354 次 |
最近记录: |