2017-02-17 22 views
1

我正在制作Mac OS shell中的游戏动画,我希望它能播放音乐。因此,我(试图)利用Mac OS的afplay功能,它可以直接从外壳播放mp3文件等声音文件。这是我的代码示例:在Mac sh中运行afplay并运行脚本的其余部分?

afplay ~/music.mp3 
echo "THE YEAR IS 2020" 
clear 
echo 
echo "THE YEAR IS 2020" 
clear 
echo 
echo 
echo "THE YEAR IS 2020" 
clear 

然而,在afplay ~/music.mp3线,它只是坐在一个空白屏幕。有没有办法让它播放声音并同时运行脚本的其余部分?

回答

0

通过在末尾标记&(与符号),可以使命令在后台运行。在afplay的情况下,还有一些信息被打印到屏幕上。帮助文件没有显示如何禁用,因此更危险的解决方案是将它重定向到/ dev/null。

afplay ~/music.mp3 &>/dev/null & 
echo "THE YEAR IS 2020" 

echo "THE YEAR IS 2020" 

echo "THE YEAR IS 2020" 

哦,并停止音乐plaing,运行kill $!$!是一个特殊变量,它包含最新后台进程的PID。

+0

有没有其他方法可以杀死进程? – keeganjk

+0

你可以通过发送'终止停止'信号'kill -TSTP $!'来更轻松地停止它,这相当于按下Ctrl-Z来停止前台进程。如果你这样做,你可以运行'kill -CONT $!'来恢复进程。 – AkselA