Leia a senha do teclado em vez de stdin

Leia a senha do teclado em vez de stdin

Eu tenho um zshscript que solicita entrada no teclado:

read -rs 'pw?Password: '

Este script também precisa ler o conteúdo de um arquivo stdin. Mas o readcomando pega a primeira linha do stdin e a usa como entrada para a senha:

myscript <<< 'line1\nline2'    # pw == 'line1'

Alguma forma de contornar isso? Eu preferiria uma solução zshou bash, embora também esteja aberto a outras pessoas.

(FWIW, gpg2faz isso, então eu sei que é possível... só não sei como.)

Responder1

O terminal está sempre acessível através de /dev/tty, independentemente de onde a entrada padrão foi redirecionada.

read -rs 'pw?Password: ' </dev/tty

informação relacionada