I may wish to cancel a command that's either not responding or which I realize is going to take too long (or for any number of other reasons), such as "ec2 describe-instances" with no filters, or "s3 ls " with a prefix that contains millions of files. The natural reflex in this situation is to hit ^C, which I was surprised to discover kills the whole shell. Exiting the shell is what I expect ^D to do (and indeed that works). I expect the code is simply not catching KeyboardInterrupt and/or setting a handler for SIGINT...
I may wish to cancel a command that's either not responding or which I realize is going to take too long (or for any number of other reasons), such as "ec2 describe-instances" with no filters, or "s3 ls" with a prefix that contains millions of files. The natural reflex in this situation is to hit ^C, which I was surprised to discover kills the whole shell. Exiting the shell is what I expect ^D to do (and indeed that works). I expect the code is simply not catching KeyboardInterrupt and/or setting a handler for SIGINT...