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 = .