Use backticks para avaliar o resultado do comando dentro, isto é o mesmo que outros shells. Então, ao invés de
"echo ${1} | cut -d'.' -f2"
que é uma string que certamente não é igual à string "zip", use
'echo ${1} | cut -d'.' -f2'
que avalia o comando dentro e retorna o resultado.