PuTTY не знает, когда удаленная команда ожидает ввода. Что касается терминала (или клиента SSH), ввод всегда может быть отправлен. (Даже пытаться угадать, основываясь на показанном тексте, бесполезно, поскольку многие индикаторы прогресса неотличимы для компьютера по подсказкам ввода.)
Учитывая ваши требования, единственный вариант, который я могу придумать, - это библиотека LD_PRELOAD
которая печатает звонок всякий раз, когда какая-либо программа пытается прочитать с устройства tty. Что-то вроде:
#define _GNU_SOURCE
#include <dlfcn.h>
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count) {
static ssize_t (*real_read)(int fd, void *buf, size_t count);
if (isatty(fd))
write(fd, "\a", 1);
if (!real_read)
real_read = dlsym(RTLD_NEXT, "read");
return real_read(fd, buf, count);
}
(Ну, это не работает для любого статически связанного двоичного файла, но достаточно близко.)
С другой стороны, если команда ожидает ввода, то это по определению не выполнено, поэтому требования несколько противоречивы.