コマンド入力を隠す

コマンド入力を隠す

オリジナルが不明に更新されました。

私の電子メールで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

関連情報