ユーザーとパスワードの認証が必要なサーバーにPOSTリクエストを送信すると、Terminal.appは点滅するキーアイコンを表示します。これはI believe Unicodeではありません。
ユーザーに自分のスクリプトに適切な情報を入力するように依頼すると、TERM_PROGRAM
はApple_Terminal
ですが、点滅するアイコンの表示方法がわかりません。
「キー」画像は文字のグリフではなく、ターミナルが描画するカスタムカーソルの形です。
ターミナルは、ユーザーがパスワードまたは同様の機密データの入力を求められているように見えるときはいつでも、この特別なカーソル形状を表示します。このカーソルの表示に加えて、入力メソッドが機密情報をインラインテキストまたは別のウィンドウに誤って表示することを回避するために、キーボードをローマ字入力メソッドに制限します。これは、標準のOSXパスワードテキストフィールドのように動作します。
TTYデバイスが正規(別名「調理済み」)モードに設定されており、文字エコーがオフになっていることを確認すると、端末はこのモードに入ります。この構成では、ユーザー入力はエコーされず、Returnを入力してアプリケーションプログラムに送信するまで、TTYデバイス入力バッファーのみが文字を表示します。これにより、テキストの入力中にTTYデバイスもアプリケーションプログラムもユーザー入力をエコーできないようになるため、この構成は通常、機密情報の読み取りにのみ使用されます。
実行することで、Bashで実際の動作を確認できます
stty -echo && echo Tell me your secrets: && cat; stty echo
stty -echo
はTTY文字エコーをオフにし、Bashがコマンドを実行すると正規モードが有効になるため、次のcat
コマンドは「パスワード」モードで実行されます。 cat
は、入力するまで入力の各行をエコーします Control-D。 stty echo
は、cat
が終了した後にオンに戻します。
シェルスクリプトは、単にread -s
を使用して、このモードでTTYを使用して読み取ることができることに注意してください。
while read -sp 'Tell me your secrets: '; do echo; echo $REPLY | vis; done