go - 在 Go 中执行二进制时获取输入
问题描述
我正在使用下面的代码片段:-
command:= exec.Command("./"+order)
out, err := command.Output()
if err != nil {
log.Println(err)
}
fmt.Println(string(out))
这里,“order”是当前目录下名为binary的变量。当我运行此代码时,它不会要求输入并运行二进制文件,直到它打印输出语句结束。如何在运行二进制可执行文件时获取输入?
我也尝试过在 go 中使用 python,但没有效果。
解决方案
此代码询问您的姓名,然后将其传递给./hello
读取第一个参数并输出第一个参数的二进制文件。
package main
import (
"bufio"
"fmt"
"log"
"os"
"os/exec"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("What's your name: ")
name, _ := reader.ReadString('\n')
command := exec.Command("./hello", name)
out, err := command.Output()
if err != nil {
log.Println(err)
}
fmt.Println(string(out))
}
你好,去:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(fmt.Sprintf("hello %s", os.Args[1]))
}
推荐阅读
- html - CSS:div顶部的中心图像作为背景
- excel - 使用 VBA 打开 power bi 桌面文件时出错
- javascript - 用数据过滤最后一行之后的行,保持空白
- postgresql - 显示文字时间戳值
- javascript - 带有鼠标滚轮的mousedown不断在javascript中重新触发
- node.js - 代码卡在nodejs中的.push处,没有进一步执行
- python - 初始化与随机数相关的 Python 3 时出错
- reactjs - 如何使用 ReactiveBase 有条件地呈现搜索结果
- json - 在python中聚合和求和json数据
- groovy - 是否有可能在 groovy、c++ 风格的宏中