Resposta curta: Há um erro na linha 10. O operador -ne é para inteiros,! = é para strings.
A resposta longa segue.
Veja novamente a mensagem de erro.
test.sh: line 10: [: MU: integer expression expected
Esse colchete esquerdo é, na verdade, um comando que reside no seu sistema de arquivos, não um elemento sintático como muitos esperariam. Como a maioria dos comandos no * nix, tem uma página man que você pode verificar com:
man [
onde você encontrará a lista de todos os testes que pode fazer por você:
...
STRING1 != STRING2
the strings are not equal
...
INTEGER1 -ne INTEGER2
INTEGER1 is not equal to INTEGER2
...
Note que [ e teste são o mesmo comando e você provavelmente vai ver ambos ao longo de sua carreira.
O script do shell pode ser muito difícil no começo, mas não desanime, porque vale a pena.
Acho que a opção -x do bash é muito útil ao depurar scripts de shell. Quando usado, o bash exibe todos os comandos antes de executá-los.
$ bash -x test.sh
+ selected=MU
+ team=xyz
+ '[' MU = xyz ']'
+ echo 'Guess the best team:
Manchester United->MU
Arsenal ->AR
Chelsea ->CH' Guess the best team:
Manchester United->MU
Arsenal ->AR
Chelsea ->CH
+ read team MU
+ '[' MU -ne MU ']' test.sh: line 10: [: MU: integer expression expected
+ '[' MU = MU ']'
+ echo 'Correct!! Manchester united is the best' Correct!! Manchester united is the best