#!/bin/bash
stty -echo
IFS= read -p 'Enter password: ' -r password
stty echo
printf '\nPassword entered: %s\n' "$password"
stty -echo
あなたが話しているディスプレイであるターミナルエコーをオフにします;
IFS=
パスワード内の空白を保持するために必要です。
read -r
バックスラッシュの解釈をオフにします。
ではbash
を使用することもできますがread -s
、この機能はシェル間では標準ではありません。
help read|grep echo
:「-s
端末からの入力をエコーしません」