我编写了一个脚本,该脚本应该检查 arecord 命令行录音机是否无法工作,如果是,则应该启动它。在 cron 的帮助下,我想验证我是否在特定的时间范围内进行记录。这是因为有时 arecord 会在没有任何警告的情况下停止。
这是我使用 cron 运行的脚本(一个 shell 可执行文件):
#!/bin/sh
dateis=$(date +"%Y-%m-%d-%H-%M")
if [pgrep -x "arecord" >/dev/null]
then
else
arecord -v -f dat -r 48 -D hw:1,0 -d 200 -c 2 | lame -r -h - record-$dateis.mp3
fi
由于某种原因,即使 arecord 正在录制,它也会尝试启动 arecord 的另一个实例。在命令行上,pgrep 指示正确。但由于某种原因它不会停止并且会忽略 if 语句。即使它在同一时刻运行,它也会开始记录。
希望我把这个问题说清楚了。
答案1
你可能需要
#!/bin/sh
dateis=$(date +"%Y-%m-%d-%H-%M")
if pgrep -x "arecord" >/dev/null
then
:
else
arecord -v -f dat -r 48 -D hw:1,0 -d 200 -c 2 | lame -r -h - record-$dateis.mp3
fi
我已经测试过了,它达到了你想要的效果。