Leer la contraseña desde el teclado en lugar de la entrada estándar

Leer la contraseña desde el teclado en lugar de la entrada estándar

Tengo un zshscript que solicita la entrada del teclado:

read -rs 'pw?Password: '

Este script también necesita leer el contenido de un archivo desde stdin. Pero el readcomando toma la primera línea de stdin y la usa como entrada para la contraseña:

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

¿Alguna forma de solucionar esto? Preferiría una solución zsho bash, aunque también estoy abierto a otras.

(FWIW, gpg2hace esto, así que sé que es posible... pero no sé cómo).

Respuesta1

Siempre se puede acceder al terminal a través de /dev/tty, independientemente de desde dónde se haya redirigido la entrada estándar.

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

información relacionada