在bash中随机播放文件列表

时间:2014-06-14 13:22:06

标签: bash random shuffle

对于目录中的每个文件,我想执行一个python程序。

#!/bin/bash

for file in mp3/* ; do
        if [[ "$file" == *.wav ]]; then
                python wav.py --file $file
        elif [[ "$file" == *mp3 ]]; then
                python mp3.py --file $file
        fi
done

如何修改此bash脚本以便以随机顺序获取文件?

一种方法可能是将目录中的文件(递归地)加载到列表中并首先对列表进行洗牌。可悲的是,我在bash脚本中并不太有天赋。

1 个答案:

答案 0 :(得分:0)

使用sort -R将随机播放文件列表:

#!/bin/bash

ls mp3/* |sort -R |while read file; do

        if [[ "$file" == *.wav ]]; then
                python wav.py --file $file
        elif [[ "$file" == *mp3 ]]; then
                python mp3.py --file $file
        fi
done