Eu não acho que o programa Dialog tenha uma opção para validar o conteúdo dos campos. Faça com que seu programa execute dialog
em um loop, jogando o usuário de volta para a caixa de diálogo se eles inserirem valores incorretos, como campos vazios.
#!/bin/bash
shell=
groups=
user=
home=
error_message=
IFS=$'\n'; set -f
while [[ -z $shell || -z $groups || -z $user || -z $home ]]; do
set $(dialog … --form="creating new $error_message" … --output-fd=3 3>&1 >/dev/tty)
shell=$1 groups=$1 user=$1 home=$1
error_message="(fields must not be empty)"
done
unset IFS; set +f