我正在尝试使用GoLang从我的Mac终端禁用回声。我试着用
exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
它适用于linux终端,但不适用于Mac和Windows。在Mac中,在bash和zsh中,我手动尝试使用
stty -echo
stty -echoctl
两种方法都不起作用。
有人能帮上忙吗?
谢谢!
发布于 2018-10-14 15:56:58
虽然这不能直接回答为什么您的示例不起作用的问题,但这里是如何从终端读取秘密而不回显它(这里是签名和文档的链接- 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$
https://stackoverflow.com/questions/50514342
复制