比较两个数组的长度(如果那么)

时间:2013-04-27 14:34:56

标签: bash

我正在尝试比较bash中两个数组的长度,以确定是否继续操作。

if [ "${videos[@]}" -eq "${subtitles[@]}" ]; then
   i=0
   for item in ${videos[@]}
     do
        mkvmerge -o SUB_${videos[i]} ${videos[i]} --track-name "0:English" -s 0 -D -A ${subtitles[i]}
        rm ${videos[i]}
        rm ${subtitles[i]}  
    i=$((i+1))
     done
else
     echo "** Aborting! File mismatch **"
     exit
fi

当我运行时,我得到以下内容:

line 11: [: too many arguments

第11行是该片段的第一行。任何人都可以指出我正在犯的错误(或错误)吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

if [ "${#videos[@]}" -eq "${#subtitles[@]}" ]; then
        ^                   ^

数组的长度为${#array[@]},前面有#