If I run a for loop on the command line in sh, and I press control-C, it usually cancels the current running process, so I need to hold ^C until the shell itself catches it and breaks the loop. Is there a way to break current process and the loop immediately?
Easiest way I know would be to suspend the foreground job (^z), then kill it using the job id (kill %JOB_ID)
After a Ctrl-z
The number within the brackets (  ) at the beginning of the suspension message gives you the job id.
You can also list out ids of suspended jobs using the the "jobs" command.