Я знаю, что уже поздно, но, возможно, вам нужно переключиться на альтернативный экран (например, nano, vim и другие), поэтому вы можете попробовать --keep-tite.
На странице альтернативного экрана :
--keep-tite: обычно диалог проверяет, работает ли он в xterm, и в этом случае пытается для подавления строк инициализации, которые заставили бы его переключиться на альтернативный экран. Переключение между обычным и альтернативным экранами визуально отвлекает скрипт, который запускает диалог несколько раз. Используйте этот параметр, чтобы диалоговое окно позволяло использовать эти строки инициализации.Вот пример:
echo "Write something before invoking dialog."
dialog --keep-tite --msgbox "Hello world!" 0 0
После того, как пользователь нажал «ОК», результат, напечатанный до вызова dialog ..., будет восстановлен.
Просто добавьте clear после строки dialog:
...
dialog --ascii-lines --title "Administrative tasks" --menu "Tasks :" 20 0 0 1 "Display firewall settings" 2 "Restore firewall settings" 3 "Flush Firewall settings" 2>$TEMP
clear #clears the terminal screen
choice=`cat $TEMP`
case $choice in
...