Sua declaração case syatax não está correta.
Na declaração case , cada par de ação padrão precisa ser finalizado em ;; , mas você usou um único ; (após ls -l ) que é análogo a nova linha neste caso. Assim, o shell continua com o mesmo par de ação padrão na linha seguinte, encontrou 2) e mostrou um erro de sintaxe.
A sintaxe correta seria:
case "$c" in
1) chmod u+x "$b"; ls -l ;;
Verifique este tutorial para ter mais ideias sobre a declaração case .
Observe também que não deve haver espaços entre a sintaxe do bit de permissão, ou seja, você precisa colocar u+x , não u + x .

!