Lesen Sie das Passwort von der Tastatur statt von der Standardeingabe

Lesen Sie das Passwort von der Tastatur statt von der Standardeingabe

Ich habe ein zshSkript, das zur Tastatureingabe auffordert:

read -rs 'pw?Password: '

Dieses Skript muss auch den Inhalt einer Datei von stdin lesen. Der readBefehl verwendet jedoch die erste Zeile von stdin als Eingabe für das Passwort:

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

Gibt es eine Möglichkeit, das zu umgehen? Ich würde eine zshoder bash-Lösung bevorzugen, bin aber auch für andere offen.

(FWIW, gpg2das funktioniert, also weiß ich, dass es möglich ist … weiß nur nicht wie.)

Antwort1

Das Terminal ist immer über erreichbar /dev/tty, unabhängig davon, von wo die Standardeingabe umgeleitet wurde.

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

verwandte Informationen