如何使用GoLang以编程方式禁用Mac终端的回声

时间:2018-05-24 16:42:41

标签: macos go terminal echo

我正在尝试使用GoLang禁用来自Mac终端的回声。我尝试使用

model.get_weights()

它适用于Linux终端,但它不适用于Mac和Windows。在Mac中,在bash和zsh中,我手动尝试使用

exec.Command("stty", "-F", "/dev/tty", "-echo").Run()

两者都没有用。

任何人都可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

虽然这不能直接回答为什么您的示例不起作用的问题,但这是一个如何在不回显的情况下从终端读取机密的方法(以下是签名和文档的链接-{{3} }):

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$