Как программно отключить эхо от терминала Mac с помощью GoLang - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь отключить эхо от моего терминала Mac, используя GoLang.Я попытался использовать

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

Это работает для терминала Linux, но не работает для Mac и Windows.В Mac, в bash и zsh я вручную пытался использовать

stty -echo
stty -echoctl

Оба не работали.

Может кто-нибудь помочь с этим?

Спасибо!

1 Ответ

0 голосов
/ 14 октября 2018

Хотя это не дает прямого ответа на вопрос, почему ваш пример не работает, вот как можно прочитать секрет с терминала, не возвращая его назад (здесь ссылка на подпись и документацию - ссылка):

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$
...