#!/bin/bash psw=false while ! $psw do ans=$(dialog --ok-label "Submit" \ --backtitle "One Button Installer - Create Password" \ --title "Create password" --insecure \ --passwordform "Arrow down for 'Repeat password', TAB for 'Submit'" \ 0 0 0 \ "Create new password:" 1 1 "" 2 1 64 0 \ "Repeat the password:" 3 1 "" 4 1 64 0 \ 3>&1 1>&2 2>&3 3>&- ) # These are several commented debug outputs, that you might remove # echo "$ans" fpsw=$(mktemp) # echo "$fpsw" echo "$ans" > "$fpsw" # cat "$fpsw" for i in 1 2 do read "psw$i" done < "$fpsw" # echo "psw1=$psw1" # echo "psw2=$psw2" if [ ${#psw1} -lt 6 ]; then echo "too short password, use at least 6 characters" read -n1 -t3 psw=false elif [ "$psw1" == "$psw2" ]; then echo "the password entries match, go ahead ..." psw=true else echo "the passwords do not match, try again" read -n1 -t3 psw=false fi done # use psw1 here ... #echo "psw1=$psw1" # clean up shred "$fpsw" psw1=\ ' ' psw2=$psw1 ans="$psw1 $psw2" #less "$fpsw" #echo "psw1=$psw1" #echo "psw2=$psw2" #echo "ans=$ans" unset psw1 psw2 ans #echo "psw1=$psw1" #echo "psw2=$psw2" #echo "ans=$ans" rm "$fpsw"