標準入力の代わりにキーボードからパスワードを読む

標準入力の代わりにキーボードからパスワードを読む

zshキーボード入力を要求するスクリプトがあります。

read -rs 'pw?Password: '

さらに、スクリプトは標準入力からファイルの内容を読み取る必要があります。ただし、このreadコマンドはstdinの最初の行を取得し、それをパスワード入力として使用します。

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

この問題を解決する方法はありますか?私は他の人にもオープンですが、解決策をzsh好みます。bash

(FWIW、gpg2こうすれば可能であることがわかります。方法はよくわかりません。)

ベストアンサー1

/dev/tty標準入力がどこからリダイレクトされるかに関係なく、常に端末からアクセスできます。

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

おすすめ記事