我正在运行此脚本:
files=(*)
to_take=$((1*${#files[@]}/10))
x=${#files[@]};
for i in $(seq 1 $to_take);
do
#I've tried initially with the random comment
# r=$((RANDOM%x));
r=$(shuf -i 1-$((x)) -n 1);
echo $r;
# echo ${files[r]};
echo $i;
done;
但是,有一个问题。尽管echo $i
输出范围内的所有i
(因此循环起作用),但是echo $r
仅返回一个数字。输出如下:
r (the random no, eg: 45)
1
2
3
....
....
to_take
请提出我在做错什么。
P.S .: 我尝试过:
r=100
for i in $(seq 1 $to_take); do echo $r; done;
输出仅为
100
代替
100 to_take times.
我正在犯什么错误?
修改
我使用过的每个评论
for ((i=0;i<to_take;i++))
尽管我很快会确认
,但此代码似乎有效看起来,当前的问题是从.wav文件的总数列表中选择“ to_take”个.wav文件(语音记录)来训练自动语音识别系统。