gpt4 book ai didi

linux - 在bash中执行任意命令

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:45 25 4
gpt4 key购买 nike

我希望 Go 程序在 bash 终端中运行命令(包括内置命令),并在终端本身中显示它,例如

$ls
trial.go output.txt hello.txt
$pwd
/home/bb/cc
$go run trial.go pwd
/home/bb/cc
$go run trial.go cd ..
$pwd
/home/bb

正如您所看到的,golang 脚本将命令作为输入,并在相同的终端和环境中执行它,并显示输出

我尝试了以下代码,但它不适用于内置命令

cmd := exec.Command("<the input command>")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
log.Fatalf("cmd.Run() failed with %s\n", err)
}

简单来说,输入字符串将被粘贴到终端中并被执行。

最佳答案

这适用于“一个单词”命令,也许您可​​以修复它以处理更多单词。希望是有用的。

package main

import (
"fmt"
"log"
"os/exec"
)

func main() {
for {
fmt.Println("Please introduce one word command (ls for example)")
var command string
fmt.Scan(&command)

out, err := exec.Command(command).Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Your output is: %s/n",out)
}
}

关于linux - 在bash中执行任意命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58419112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com