首页 > 后端开发 > Golang > 如何在 Go 中自动执行用户输入外部命令?

如何在 Go 中自动执行用户输入外部命令?

DDD
发布: 2024-10-29 17:48:02
原创
928 人浏览过

 How to Automate User Input for External Commands in Go?

在 Go 中处理外部命令的用户输入

执行需要用户输入的外部命令时,有效地自动化此过程可能具有挑战性。考虑以下场景,其中外部命令等待用户名和密码的输入。

使用用户输入填充多个字段

此问题的关键在于向命令的标准输入中的多个字段提供输入。一种方法是使用字节缓冲区:

login := exec.Command(cmd, "login")

var b bytes.Buffer
b.Write([]byte(username + "\n" + pwd + "\n"))

login.Stdout = os.Stdout
login.Stdin = &b
login.Stderr = os.Stderr
登录后复制

这里,创建一个字节缓冲区 b 并填充用户名和密码的原始输入值,并用换行符分隔。然后登录命令的 Stdin 字段链接到缓冲区。这确保外部命令在执行时从预先填充的缓冲区中读取输入。

使用输入缓冲区

输入缓冲区可以通过顺序存储数据来处理多行。当该命令读取输入时,它会逐个字符地遍历缓冲区,将换行符视为字段分隔符。这允许将多个输入自动输入到命令的标准输入中。

结论

通过利用字节缓冲区并将其设置为外部命令的标准输入,您可以有效地从在您的程序中,无需手动输入或复杂的输入流处理。此方法提供了一种自动输入外部命令的便捷方法,从而简化了代码库并改进了程序流程。

以上是如何在 Go 中自动执行用户输入外部命令?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板