0

我正在尝试比较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 行是代码段的第一行。谁能指出我犯了什么错误(或错误)?

谢谢!

4

1 回答 1

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

数组的长度是${#array[@]}#前面。

于 2013-04-27T14:35:38.650 回答