我正在尝试使用 GoLang 禁用来 self 的 Mac 终端的回显。我尝试使用
exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
它适用于 linux 终端,但不适用于 Mac 和 Windows。在 Mac 中,在 bash 和 zsh 中,我手动尝试使用
stty -echo
stty -echoctl
两者均无效。
有人可以帮忙吗?
谢谢!
最佳答案
虽然这不能直接回答为什么您的示例不起作用的问题,但这里是如何从终端读取 secret 而不回显它(这里是签名和文档的链接 - link) :
package main
import (
"fmt"
"syscall"
"golang.org/x/crypto/ssh/terminal"
)
func main() {
fmt.Println("Your password: ")
bytepw, err := terminal.ReadPassword(int(syscall.Stdin))
if err != nil {
panic(err)
}
fmt.Println()
fmt.Printf("Your password was '%s'\n", string(bytepw))
}
预期输出:
mac:~ jabbson$ go run testpass.go
Your password:
Your password was 'mypass'
mac:~ jabbson$
关于macos - 如何使用 GoLang 以编程方式禁用来自 Mac 终端的回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514342/