macos - 如何使用 GoLang 以编程方式禁用来自 Mac 终端的回显

标签 macos go terminal echo

我正在尝试使用 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/

相关文章:

linux - linux终端中的随机文本

c - 在 mac OS X 上,gcc 在 C 中默认链接数学库?

windows - 在 Mac OS X 上运行的虚拟机 : how to emulate Alt-F4?

go - 如何使两个对象具有可比性

google-app-engine - Go Appengine 教程是否缺少 LoginURL 重定向语句?

azure - 使用 Golang 从 Azure Blob 存储下载文件时得到 "curl Empty reply from server",但文件是在后台下载的

xcode - osx Lion 的符号链接(symbolic link)级别太多

python - 如何在python中将网页转换为pdf,就像打印中的另存为pdf选项一样

objective-c - 如何托管 Apple 的 Pitch Shift Audio Unit 插件等

shell - 执行 shell 脚本时未找到 fc