Я написал простой скрипт для управления временем загрузки (начало и конец) с wget в Linux-Gnu с Perl. Нет проблем, и все работает хорошо, за исключением того, что я хочу Я могу прочитать ключ с клавиатуры, когда процесс запущен.
Я показываю простую анимацию движения на экране, которую я не хочу останавливать, а затем читать ключ.чтение ключа с клавиатуры при запуске процесса
, например, как MPlayer или MPV, что при запуске на Comman линии, вы можете нажать q
для выхода или s
, чтобы сделать снимок с экрана.
Часть сценария:
do {
system("clear");
($h, $m, $s) = k5mt::second_to_clock( $till_shutdown);
set_screen();
set_screen(24);
set_screen();
say "download was started ...";
set_screen();
set_screen(24);
set_screen();
printf "till finish: %02d %02d %02d\n", $h, $m, $s;
set_screen();
set_screen(24);
set_screen();
say "wget pid: [$wget_pid]";
set_screen();
set_screen(24);
set_screen();
$waiting_temp .= $animation[ $counter_animation++ ];
say $waiting_temp;
if(length($waiting) == $counter_animation){
$waiting_temp = "";
$counter_animation = 0;
}
set_screen();
set_screen(24);
sleep 1;
$till_shutdown--;
} while($till_shutdown);
слова ждут до конца ..... показан последовательно (без перерыва), и я хочу, чтобы прочитать ключ как q
для выхода из программы.
UPDATE
Я ищу решение с, как многие опции, как я хочу, если я хотел только для выхода из программы я просто сказать пользователю нажать Ctrl + C
Можно с помощью скриптов в Perl? или нет? Если да, то как?
Примечание: если это возможно без каких-либо модулей, скажите, пожалуйста, решение без какого-либо модуля, и если нет, то все в порядке не проблема
Однако, спасибо так много.
Одно решения, которое я вижу в создании подпроцесса и сделать основную задачу в то время как родитель будет продолжать искать вход, если пользователь вводит д, то родитель будет убивать суб proccess –
@PrashantPokhriyal Ваш смысл в том, что я использую 'fork()' для чтения 'key'? –
Да Создайте fork –