我正在创建一个闹钟脚本,因为我还没有找到一个好的 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
不会以任何方式影响,然后kill -9 mpv
一旦 if 条件“通过”。
我完全迷路了 - 在此先感谢!