#!/bin/bash
# type "finish" to exit
stty -echoctl # hide ^C
# function called by trap
other_commands() {
tput setaf 1
printf "
SIGINT caught "
tput sgr0
sleep 1
printf "
Type a command >>> "
}
trap 'other_commands' SIGINT
input="$@"
while true; do
printf "
Type a command >>> "
read input
[[ $input == finish ]] && break
bash -c "$input"
done