60 行 Shell 代码实现在终端下优雅地听歌 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Pyjamas
V2EX    分享创造

60 行 Shell 代码实现在终端下优雅地听歌

  •  1
     
  •   Pyjamas 2018 年 4 月 24 日 4690 次点击
    这是一个创建于 2856 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文地址:60 行 Shell 代码实现在终端下优雅地听歌

    这个方案适合像我这种对新歌没什么需求的人,就把想听的歌都下到一个文件夹里,然后离线听歌就行了。

    我的实现是在 macOS 上的 Zsh 脚本,然后调用了下内置的 afplay,Linux 下应该也适用,找个 afplay 的替代品估计也不是啥难事。

    这个方案我用了快一年了,我感觉这个播放器是我写过最有用的东西,因为每天听歌都靠它了 :)

    第 1 条附言    2018 年 4 月 24 日

    po个效果图过来好了,anyway我觉得还挺方便的,往.zshrc里写几个函数就行了,感觉也挺适合新手写Shell脚本练习和熟悉Unix信号量用

    一共就几个操作

    • m [keyword] = 根据keyword搜索播放
    • n = next 下一首
    • ms = music stop 其实是操作不是stop,应该叫暂停pause - -
    • mc = music continue 恢复暂停的音乐
    • mm = 结束播放

    12 条回复    2020-02-18 05:34:23 +08:00
    Lycnir
        1
    Lycnir  
       2018 年 4 月 24 日
    mpd 你值得拥有
    daigouspy
        2
    daigouspy  
       2018 年 4 月 24 日 via Android
    手机点一下就可以听歌了,为什么要学代码?
    Pyjamas
        3
    Pyjamas  
    OP
       2018 年 4 月 24 日
    @daigouspy 写代码好玩呗,对我来说就是写代码的时候少了一件让我切出终端的事,比如我在 emacs 里写代码,我直接在 emacs 里就能换歌什么的
    Pyjamas
        4
    Pyjamas  
    OP
       2018 年 4 月 24 日
    @Lycnir mpd 看起来好高大上 - -
    supertan
        5
    supertan  
       2018 年 4 月 25 日 via iPhone   1
    所以,是无聊还是单身?
    forestyuan
        6
    forestyuan  
       2018 年 4 月 25 日
    装逼利器
    NonClockworkChen
        7
    NonClockworkChen  
       2018 年 4 月 25 日
    我听音乐,主要是为了看网易云的评论。。。
    Pyjamas
        8
    Pyjamas  
    OP
       2018 年 4 月 25 日
    @supertan 不存在的,不单身很多年了,我感觉我的播放器只要这几个功能就够了
    Pyjamas
        9
    Pyjamas  
    OP
       2018 年 4 月 25 日
    @NonClockworkChen 我之前也是用的网易云,也喜欢看评论,不过有一天突然就觉得评论没那么重要了
    xuanyuanaosheng
        10
    xuanyuanaosheng  
       2018 年 4 月 25 日 via Android
    mark 下看看
    xbtmyz
        11
    xbtmyz  
       2018 年 4 月 25 日 via Android
    听歌不看评论,那还听个什么劲(手动滑稽.jpg)
    AmrtaShiva
        12
    AmrtaShiva  
       2020 年 2 月 18 日   1
    function n() { pid="$(ps -ef | grep afplay | grep -v grep | head -1 | awk '{print $2}')" kill -INT $pid } 这段函数在 Linux 里可以 kill -9 `pidoff afplay`
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     907 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 17:18 PVG 01:18 LAX 09:18 JFK 12:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86