linux命令行隐藏input输入

脚本如下:

function hidden_input
{
    typeset function_name="hidden_input"
    typeset prompt="$1"
    typeset input=""
    typeset character=""
    echo ""
    echo "$prompt:"

    STTY_RESTORE=$(stty -g)
    stty -echo cbreak
    while true
    do
        character=$(dd if=/dev/tty bs=1 count=1 2> /dev/null)
        case $character in
        $(printf "\n"))
                 printf "\n"
            break
            ;;
        $(printf "\b"))
            if [ -n "$input" ]; then
                printf "\b \b"
                input=$(echo "$input" | sed 's/.$//g')
            fi
            ;;
            *)
        input=$input$character
        printf '*'
        ;;esac
    done
    stty $STTY_RESTORE

    RETURN[0]="${input}"
}

hidden_input "Input the password"
password="${RETURN[0]}"

echo $password

Input the password:
*******      #输入密码:1234567


你可能感兴趣的:(linux)