利用一个简单的脚本在命令行播放在线音乐

今天闲着没事,便想能不能在命令行播放在线音乐,经过一番研究学习,还真给实现了。(小白一个,欢迎大神指正批教!)

使用方法:
music 歌曲名] 歌手名(可选)]

注:脚本名称可根据自己喜好,别忘了加执行权限,然后扔 /bin 目录就行了。

脚本如下:

#!/bin/bash

	killall ffplay mplayer 2>/dev/null

	if  $1 ];then

	curl -s "http://box.zhangmen.baidu.com/x?op=12&count=1&title="$1"\$\$"$2"\$\$\$\$" -o ~/.cache/music.xml
	gmg=`grep -io 'http://zhangmenshiting.baidu.com/data2/music/[0-9]\{6,20\}/' ~/.cache/music.xml  2> /dev/null | grep -om1 '.*'`
	sxy=`grep -io '[0-9]\{6,20\}.mp3?.\{54\}' ~/.cache/music.xml  2> /dev/null | grep -om1 '.*'`

		if  -n "$gmg" ];then
			if which mplayer 1>/dev/null;then
				mplayer -audiofile-cache 2048 -cache-min 5 -msglevel all=-1 $gmg$sxy 2>/dev/null & echo -ne "\n\t正在播放:$1\n\t输入 music 结束播放!\n\n"
			else
				wget -q -O ~/.cache/music.mp3 $gmg$sxy && ffplay -loglevel quiet -nodisp ~/.cache/music.mp3 & echo -ne "\n\t正在播放:$1\n\t输入 music 结束播放!\n\n"
			fi
		else
			echo "没有找到该音乐!"
		fi

	else
		tur=`pgrep 'ffplay|mplayer'`
		if  -n "$tur" ];then
			echo -ne "\n\t结束播放!\n\n"
		else
			echo -ne "\n使用帮助:\n\tmusic 歌曲名] 歌手名]\n\n示例:\n\tmusic 北京欢迎您\n\tmusic 天亮了 韩红\n\n"
	fi
fi
1赞

赞一个!!
刚开始学 shell 脚本,代码先收藏了,有时间研究研究。