我有一个文件夹,里面有几个文件,名为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