在golang中提示执行此命令:
/bin/bash script.sh < text.txt
我使用参数执行脚本:
package main
import (
"fmt"
"os/exec"
"log"
"os"
)
func main() {
argstr := []string{"script.sh", "arg1", "arg2"}
out, err := exec.Command("/bin/bash", argstr...).Output()
if err != nil {
log.Fatal(err)
os.Exit(1)
}
fmt.Println(string(out))
}
以下是如何从文本文件传输输出?
答案 0 :(得分:3)
您应该执行的命令是:
assert_eq!(make_foo!("test"; 2), [Foo { info: "test 1" }, Foo { info: "test 2" }]);
所以
/bin/bash -c 'script.sh < text.txt'
Bash将解释输入重定向并完成工作。
答案 1 :(得分:0)
专业提示:不要忘记暂停
ctx, cancel := context.WithTimeout(context.Background(), 4*time.Second)
defer cancel()
argstr := []string{"/bin/bash", "-c", "script.sh < text.txt"}
cmd := exec.CommandContext(ctx, argstr...)
cmd.Stderr = &errorBuffer
cmd.Stdout = &outputBuffer
err := cmd.Run()
if err != nil {
return fmt.Errorf("something bad happened: %v", err)
}
我总是建议安全地玩。