O primeiro:
RESULT=$(unzip -aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/")
deve executar unzip bem, e soltar sua saída para a variável RESULT . No entanto, unzip não imprime muito em sua saída padrão (bem, a menos que com unzip -l ), então eu acho que você realmente quer o valor de retorno. Que pode ser encontrado em $? após a atribuição e substituição de comandos, ou apenas após a execução do programa como normal:
unzip -aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/"
if [ "$?" -eq 0 ] ; then echo ok ; fi
(e sim, você poderia apenas if unzip ... ; then ... .)
Você não tem uma matriz lá, apenas um monte de parâmetros normais para o comando. Isso criaria uma matriz, imprimiria seu tamanho e passaria como argumentos para unzip :
A=(-aoq cryptopp563.zip -d "$TMP/cryptopp563-zip/")
echo ${#A[@]}
unzip "${A[@]}" # note the quotes