更新为原始不清楚。
我正在计算机上设置 postfix 以使用我的电子邮件的 SMTP。
我不想以纯文本形式输入我的凭据,尤其是在公共场合输入时。
是否可以让 bash 不显示我输入的一两个命令?
示例:我正在输入一系列命令,然后我想将用户名和密码回显到配置文件中。
我想快速进入一种模式,其中我的输入不会显示在屏幕上,然后轻松退出该模式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