Q:

Simple desktop program instantly closes

I wrote a simple .desktop program with accompanying script.  It worked recently but seems to have stopped for no reason.  It now just opens a terminal (expected) but instead of running the rest of the program it instantly closes the window.  Basically it opens then instantly closes the terminal window without running (or so it seems) any of the script. 
Here is the code for both, the script first, then the .desktop file:
    #! /bin/bash

selection=
until [ "$selection" = "ENTER" ]; do
    echo "

SHUTDOWN:

    C - Cancel shutdown and quit    
    ENTER - Accept shutdown timer (3 hours) and quit
"    

    read selection
    echo ""
    case $selection in
        [Cc]) exit;;
        "") echo "Shutting down... 'sudo shutdown -c' to cancel"
            sleep 5
            sudo shutdown -h 180
        *) echo "Please enter either C or Press [ENTER]"
    esac
done 

here's the Desktop file:
    [Desktop Entry]
Name=Shutdown Script
Comment=shutdown in 3 hours
Exec="/home/nate/Update-Clean/shutdown script"
Terminal=true
Type=Application
Icon=/home/nate/Update-Clean/icons/computer-fail.png
Name[en_US]=Shutdown

How did it stop working?! 
(Also, if you hadn't noticed, I want a simple script to shutdown the computer after a certain time.  This is only the 2nd thing I've written so if it has errors or you have constructive criticism, by all means!)  
Thanks a ton! 
EDIT:
I added a simple "exit;;" to the script.  Could that have been all? 
change:
    case $selection in
        [Cc]) exit;;
        "") echo "Shutting down... 'sudo shutdown -c' to cancel"
            sleep 5
            sudo shutdown -h 180
            exit;;
        *) echo "Please enter either C or Press [ENTER]"

A:

Always try a script by running it from a command line.  If you did that, you would see the following message
:~$ ./test.sh
./test.sh: line 20: syntax error near unexpected token `)'
./test.sh: line 20: `        *) echo "Please enter either C or Press [ENTER]"'

If you look up the bash manual, you will see the following syntax:
case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

That means that after the commands to be executed, you need to add a ;; (not necessarily after an exit statement!)  The following case statement works as well:
case $selection in
    [Cc]) exit;;
    "") echo "Shutting down... 'sudo shutdown -c' to cancel"
        sleep 5
        sudo shutdown -h 180
        ;;
    *) echo "Please enter either C or Press [ENTER]"
        ;;
esac

OK, but this is a boring answer.  You know what -- you want an interactive program.  You launch it in a GUI (by clicking on an icon).  Why not use (tadam!)  zenity:
#! /bin/bash

if zenity --question --text "Shutdown in 3 hours?" ;  then
  zenity --info --text "Shutdown has been scheduled"
  sudo shutdown -h 180
else
  zenity --info --text "Shutdown CANCELLED"
fi

