Команда выхода с любой клавишей

Вот что у меня есть:

Сценарий, который записывает звук и выходит при нажатии ctrl + c

arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 > file

. Это будет записывать и записывать, пока я не нажму ctrl + c

Я хочу смоделировать действие ctrl + c нажатием любой клавиши (желательно одним нажатием клавиши)

2
задан 13 November 2013 в 09:56

2 ответа

Вы можете использовать stty в подоболочке и изменить настройку для ctrl - c на любую другую. В моем примере я изменил его на x . После того, как подоболочка будет завершена или прервана x , настройка будет восстановлена ​​в ^ c ( ctrl - c ).

user@host:~# (stty intr x && arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 > file); stty intr ^c

Даже если вы завершите процесс с помощью killall acroread, настройка будет восстановлена.

0
ответ дан 13 November 2013 в 09:56

Предполагая, что вы используете bash в качестве оболочки (вы можете изменить оболочку, если она отличается от bash, в первой строке скрипта):

#!/bin/bash
arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 > file &
pid_of_arecord=`pidof arecord`
read input
kill -2 $pid_of_arecord

Это отправляет сигнал SIGINT до arecord, даже когда вы нажимаете любую клавишу после начала записи.

0
ответ дан 13 November 2013 в 09:56

Другие вопросы по тегам:

Похожие вопросы: