
Ich habe ein zsh
Skript, das zur Tastatureingabe auffordert:
read -rs 'pw?Password: '
Dieses Skript muss auch den Inhalt einer Datei von stdin lesen. Der read
Befehl 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 zsh
oder bash
-Lösung bevorzugen, bin aber auch für andere offen.
(FWIW, gpg2
das 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