以下是我所拥有的:
录制声音并在按下 ctrl+c 时退出的脚本
arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 > file
它会一直记录,直到我按下 ctrl+c
我想通过按任意键(最好是一次击键)来模拟 ctrl+c 操作
答案1
ctrl您可以在子 shell 中使用 stty,并将- 的设置更改为c任意值。在我的示例中,我将其更改为x。子 shell 结束或中断后,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
设置终止该进程也会恢复。
答案2
假设你使用 bash 作为你的 shell(如果不是 bash,你可以在脚本的第一行更改 shell):
#!/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
你按下任意键开始录音后。