オリジナルが不明に更新されました。
私の電子メールでSMTPを使用するために私のコンピュータにpostfixを設定しています。
特に、公的に私の資格情報をプレーンテキストで入力したくありません。
bashで私が入力した1つまたは2つのコマンドを表示しないようにすることはできますか?
例:一連のコマンドを入力してから、ユーザー名とパスワードを構成ファイルに再表示したいと思います。
入力した内容が画面に表示されないモードにすばやく入り、そのモードを簡単に終了したいと思いますctl+c
。
答え1
Bashの場合:readはコマンドで、関連するオプションは次のとおりです(man bashから)。
-s 自動モード。入力が端末から来る場合、文字はエコーされません。
#!/bin/bash
unset password
prompt="Enter Password:"
while IFS= read -p "$prompt" -r -s -n 1 char
do
if [[ $char == $'\0' ]]
then
break
fi
prompt='*'
password+="$char"
done
echo
echo "Done. Password=$password"
ただし、アスタリスクを使用すると、他の人がパスワードの長さを見ることができるので、何も表示しないのが最善です。
答え2
次のstty
コマンドを使用する必要があります。
stty -echo
ターミナル入力エコーを再び有効にするには:
stty echo