我正在尝试比较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行是该片段的第一行。任何人都可以指出我正在犯的错误(或错误)吗?
谢谢!
答案 0 :(得分:3)
if [ "${#videos[@]}" -eq "${#subtitles[@]}" ]; then
^ ^
数组的长度为${#array[@]}
,前面有#
。