You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint下如何修改Shell脚本生成含OGG与MP3的M3U播放列表

问题:如何让Shell脚本同时生成MP3和OGG文件的M3U播放列表?

在Linux Mint系统中,我用以下代码可以生成指定文件夹内所有音乐的M3U播放列表:当文件夹全是OGG文件时可用,全是MP3文件时就把扩展名改成mp3:

playlist='play.m3u' ; if [ -f $playlist ]; then rm $playlist ; fi ; for f in *.ogg; do echo "$f" >> "$playlist"; done

我想修改代码,让它能同时把MP3和OGG文件都加入同一个播放列表,但试了几种写法都无效:

  • for f in *.ogg AND '.mp3';
  • for f in *.ogg & '.mp3';
  • for f in *.ogg && '.mp3';

请问该怎么实现?


解决方案

在Shell中,要匹配多个不同后缀的文件,直接在for循环的通配符列表里用空格分隔多个模式即可,不需要用AND、&这类错误语法。

修改后的完整代码如下:

playlist='play.m3u' ; if [ -f "$playlist" ]; then rm "$playlist" ; fi ; for f in *.ogg *.mp3; do echo "$f" >> "$playlist"; done

额外说明

  • 之前的错误写法混淆了Shell语法:AND不是Shell关键字,&是后台执行符号,&&是逻辑与,都不能用来分隔通配符模式。
  • 建议给变量$playlist加上双引号,避免文件名包含空格等特殊字符时出现异常(修正版已经补上了这部分)。

内容的提问来源于stack exchange,提问作者Jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:23:23