github.com/zyedidia/knit@v1.1.2-0.20230901152954-f7d4e39a0e24/shell/shell.go (about) 1 package shell 2 3 import ( 4 "context" 5 "os" 6 "strings" 7 8 "mvdan.cc/sh/interp" 9 "mvdan.cc/sh/syntax" 10 ) 11 12 func Run(cmd string) error { 13 r, err := interp.New(interp.StdIO(os.Stdin, os.Stdout, os.Stderr)) 14 if err != nil { 15 return err 16 } 17 18 prog, err := syntax.NewParser().Parse(strings.NewReader(cmd), "") 19 if err != nil { 20 return err 21 } 22 r.Reset() 23 ctx := context.Background() 24 return r.Run(ctx, prog) 25 }