脚本文件求解释!该如何处理

脚本文件求解释!
 
        我有看到下面的脚本,存在下面的问题有。
     
        

            if [[ "${#scripts[@]}" -eq 0 ]];then
                 echo "Invalid scripts list" >> /tmp/spdbccc_import.log
              exit 0
         fi
       

  
  第一个问题:[@]这个是什么意思,还有其他的一些参数吗?
  第二个问题:${#scripts[@]}这个是什么意思?
------解决思路----------------------
参数替换

$scripts             当作数组来使用
${#scripts[@]}  计算元素的个数。 元素是整个$scripts

------解决思路----------------------
楼上正解。

PS,如果变量不是数组,那么${#var}就是求变量的长度。
比如,var="abcd",那么${#var}就是4