0

操作を続行するかどうかを判断するために、bash で 2 つの配列の長さを比較しようとしています。

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[@]}に a#があります。

于 2013-04-27T14:35:38.650 に答える