В скрипте баш, запускаю другой скрипт(консольную утилиту), который без завершения работает бесконечно.
Чтобы завершить скрипт в обычной консоли, нужно отправить ctrl-c, тогда скрипт корректно завершается и сохраняет результат.
Каким образом отправить эмуляцию нажатых клавиш в запущенную консольную утилиту в скрипте баш?
Пожалуйста, не спрашивайте какую консольную утилиту запускаю, вопрос общего характера, таких утилит много!
Как завершить запущенную в скрипте баш консольную утилиту/ отправить ctrl -c в эту утилиту?
Вам не нужно эмулировать нажатие клавиш. Ctrl-C посылает процессу сигнал SIGINT. Вам нужно послать сигнал запущенному процессу, для этого нужно знать его PID. PID можно получить из pid-файла, если та консольная утилита его создает, либо через переменную $! (yourcommand & echo $!), либо грепнув по процессам (см. pgrep). Рассмотрите также сигналы SIGTERM и SIGKILL.