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
Eu tenho um script zsh que solicita a entrada do teclado:
read -rs 'pw?Password: '
Este script também precisa ler o conteúdo de um arquivo de stdin. Mas o comando read pega a primeira linha de stdin e a usa como entrada para a senha:
myscript <<< 'line1\nline2' # pw == 'line1'
Qualquer maneira de contornar isso? Eu preferiria uma solução zsh ou bash , embora eu também esteja aberto aos outros.
(FWIW, gpg2 faz isso, então eu sei que é possível ... só não sei como).