Espaço em branco ausente
[ $i="green" ]
significa [ -n $i=green ]
você precisa
[ "$i" = green ]
ou até mesmo
[ green = "$i" ]
que funciona mesmo para i=-n
.
Se você não precisa de portabilidade para outros shells, você pode usar colchetes duplos no bash.
[[ $i = green ]]
As citações não são necessárias (na verdade, no lado direito elas têm um significado especial - elas impedem a expansão). Você também pode usar ==
em vez de =
.