如何在 Bash 中运行程序时播放声音文件



我正在创建一个闹钟脚本,因为我还没有找到一个好的 Linux 闹钟,我决定学习 Bash 脚本是个好主意(再次(。我正在考虑制作一个播放闹钟声音的程序(哔哔声全音量(,我希望该程序让我在关闭声音之前解决一些基本的代数。但是,我不知道如何在它要求解决方案并等待我的输入的同时播放声音,以便它可以关闭噪音。我真的不知道我会用什么表情来强迫mpv严格在后台行动。&;等待线路终止,我无法使用parallel来解决它。我还尝试将输出定向到/dev/null因为这似乎是其他人的答案,但它对我的问题不起作用(在 mpv 终止之前什么都不会发生,这似乎很明显,因为它只忽略输出对吗?

这是我到目前为止所做的(非常基本,只有结构,所以我可以用它编程(:

# !/bin/zsh
function math (){ 
echo MATH
read answer
if (( ("$answer") == $1 )); then
echo PASS    
else
echo FAIL
fi  
}
echo 'Alarm'
let "NUM1=(($RANDOM % 10) * 3)";
let "NUM2=(($RANDOM % 10) * 3)";
let "m = $NUM1 * $NUM2"
printf "%d * %d = %d" "$NUM1" "$NUM2" "$m"
mpv alarm_sound.wav ; #>/dev/null 2>&1
math m

echo MATH是在mpv播放完声音之后出现的。

我的梦想是让mpv作为一个完全独立的过程,这样它就不会以任何方式影响alarm.sh,然后在 if 条件"通过"后kill -9 mpv

我完全迷路了 - 提前感谢!

像Linux一样,有许多可行的解决方案可以解决您的困境。

想到的最简单是在命令末尾输入&符号:

mpv audio_file.wav &

这应该会为音频文件生成一个新进程。

最新更新