次のようにパスワードを入力してしまうと、historyにパスワードが残ってしまう。
pass=password
echo $pass
history | tail
そこでread -p "表示文字列" 変数
を使用すると、パスワードを標準入力に入力することを求められ、historyにはパスワード部分が残らなくなる。
-s
をつけると入力した文字がコンソールに表示されなくなり、より安全。
read -sp "Password" pass
echo $pass
パスワードをテキストファイルに書きたいが、手順書にパスワードを載せるわけにはいかないような場合、read -sp
を使う方が手順書に次のように書くより置換漏れが無くなり、オペミスが少なくなる。
# read -spを使わない場合
vi test.txt
===================================
id0001,【パスワード※変換してください】
===================================
# read -spを使い、1行の場合
read -sp "Password:" pass &&
echo "id0001,$pass" > test.txt
# read -spを使い、複数行の場合
read -sp "Password:" pass &&
cat <<EOF > test.txt
id0001,$pass
id0002,$pass
EOF