隐藏命令的输入

隐藏命令的输入

更新为原始不清楚。

我正在计算机上设置 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

相关内容