Que tal uma função de shell? Como
function read_n_verify {
read -p "$2: " TMP1
read -p "$2 again: " TMP2
[ "$TMP1" != "$TMP2" ] &&
{ echo "Values unmatched. Please try again."; return 2; }
read "$1" <<< "$TMP1"
}
read_n_verify domain "Please enter the domain of your web application"
read_n_verify dbrootp "Please enter the app DB root password"
read_n_verify dbuserp "Please enter the app DB user password"
Em seguida, faça as ações desejadas com $domain , $dbrootp , $dbuserp .
$1 é usado para transportar o nome da variável para o próximo read do "aqui string", que por sua vez é usado como é mais fácil aqui do que um (também pode ser usado) "here document". / p>
$2 contém o texto de prompt (livre), usado por último para permitir (uma espécie de) tamanho de texto "ilimitado".
TMP em letras maiúsculas e [ ... ] && "sintaxe do açúcar" (o que quer que isso possa ser) são usados por preferência pessoal.
if - then - fi também poderia ser usado e eliminaria a necessidade de que as chaves que coletam vários comandos em um único comando sejam executadas como a ramificação && .