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 &&
.