Просто выполните команду whiptail
один раз и сохраните маску. Проверьте, действительна ли она, и, если нет, повторяйте до тех пор, пока она не станет действительной:
## Get the 1st mask
mask=$(whiptail --title "xx" --inputbox --nocancel "Bad entry" 3>&1 1>&2 2>&3)
## If it isn't valid, repeat until it is
until validmask "$mask"; do
mask=$(whiptail --title "xx" --inputbox --nocancel "Bad entry" 3>&1 1>&2 2>&3)
done
Термита у меня тоже нет, но с Терминатором работает ranger; exec bash
. Но с другой стороны, ranger; bash
тоже, так что это плохой тест. В любом случае стоит попробовать:
termite -e 'ranger; exec bash'