内联随机整数或文件

内联随机整数或文件

我有一个文件夹,里面有几个文件,名为1.mp3, 2.mp3, 3.mp3, ...

另外,我有一个接受 mp3 文件作为输入的命令:

blablabla -i mp3/1.mp3

我想传递给命令随机的mp3 文件。

blablabla -i mp3/<random int in range 1-n>.mp3

或者

blablabla -i mp3/<get random file from mp3 folder>

我正在寻找最简单的方法来做到这一点,无论哪种方法都无所谓。谁能帮忙?

答案1

使用blablabla -i mp3/$(( ( RANDOM % N ) + 1 )).mp3

替换N为您要生成的最大数字或1最小数字。

或者您可以改用$(shuf -i MIN-MAX -n 1)

man shuf

-i, --input-range=LO-HI
    treat each number LO through HI as an input line
-n, --head-count=COUNT 
    output at most COUNT lines

实际上-n 1这里shuf的意思是只生成一个随机数,你可以测试一下-n 2哪个是生成两个随机数。

printf如果您的文件名以 0 开头,您可能也希望拥有此功能。

printf "%03d.mp3\n" $(( (RANDOM % 100) + 1 ))
018.mp3

相关内容