Bash for循环不会执行一次以上的语句

时间:2018-10-17 19:08:45

标签: bash for-loop

我正在运行此脚本:

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文件(语音记录)来训练自动语音识别系统。

0 个答案:

没有答案