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)[2014
e 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))