Existe um erro de sintaxe (comum) nesta linha (OK, não apenas um ...):
[$year>1]
-
[não é um caractere especial, mas um comando comum. Assim, o resto da linha é parâmetros e estes devem ser separados por espaço em branco:[ "$year" > 1 ] -
O próximo problema é que
>não é um parâmetro comum, mas o caractere de redirecionamento (um metacaractere). Assim, o shell vê (por exemplo)[2014e procura um comando com esse nome. Se houvesse um, o shell gravaria sua saída no arquivo1]...
Se você usar [ ... ] , precisará do operador -gt (maior que):
[ "$year" -gt 1 ]
Uma alternativa é usar a bash reservada word [[ em vez de [ . Você ainda tem que usar o espaço em branco como separador, mas pode omitir as aspas:
[[ $year -gt 1 ]]
ou você pode usar expressões aritméticas para comparar inteiros:
((year > 1))