erro de redirecionamento
O problema é que o arquivo que você tenta ler não existe porque a variável que você usa para se referir ao arquivo está vazia.
$2 significa o segundo parâmetro, mas em ./script.sh não há nenhum parâmetro. Você precisa de algo como ./script.sh file1 file2
se o erro
A linha
if [ avem_element "$sir1[i]" "${sir[@]}" -eq 0 ];then
está errado. Se eu entendi corretamente, então você quer chamar a função avem_element com dois parâmetros e comparar o código de saída. Mas [ ] compara apenas cadeias. if verifica um código de saída (geralmente o de [ ] ). Você não precisa de [ ] . Apenas faça isso:
if avem_element "$sir1[i]" "${sir[@]}"; then