BASH - Syntax error near unexpected token 'done'

leviathan898

I'm new to programming in bash and am trying to write a script. So far it's very rudimentary but I'm getting the above error with the done at the end.

for ((i = 1; i < 13; i++)) do
    if [ "$i" -lt "4" ]; then
        touch Block1/B8IT11"$i".txt
        echo B8IT11"$i" created
    else if [ "$i" -gt "3" -a  "$i" -lt "7" ]; then
        touch Block2/B8IT11"$i".txt
        echo B8IT11"$i" created
    else if [ "$i" -lt "6" -a  "$i" -lt "10" ]; then
        touch Block3/B8IT11"$i".txt
        echo B8IT11"$i" created
    else
        touch Block4/B8IT11"$i".txt
        echo B8IT11"$i" created
    fi
done

To my eyes I can't see the issue, as the if-else if-else ends with fi and the for loop should terminate with the done.

I've done cat -v and even dos2unix it. Does anyone see something I'm missing?

melpomene

There is no else if in bash. What you have is an else followed by a (nested) if construct. The outer else is unterminated (missing fi). Bash thinks you're still in an else block so it's not expecting done at this point:

for ((i = 1; i < 13; i++)) do
    if [ "$i" -lt "4" ]; then
        touch Block1/B8IT11"$i".txt
        echo B8IT11"$i" created
    else
        if [ "$i" -gt "3" -a  "$i" -lt "7" ]; then
            touch Block2/B8IT11"$i".txt
            echo B8IT11"$i" created
        else
            if [ "$i" -lt "6" -a  "$i" -lt "10" ]; then
                touch Block3/B8IT11"$i".txt
                echo B8IT11"$i" created
            else
                touch Block4/B8IT11"$i".txt
                echo B8IT11"$i" created
            fi
            done

Fix: Change all your else if to elif.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

bash: syntax error near unexpected token `('

From Dev

syntax error near unexpected token ' - bash

From Dev

cygwin syntax error near unexpected token `done'

From Dev

-bash: syntax error near unexpected token

From Dev

BASH: syntax error near unexpected token `done' with alias named 'do'

From Dev

Bash syntax error near unexpected token `('

From Dev

Bash script: syntax error near unexpected token?

From Dev

Bash 'source': syntax error near unexpected token `then'

From Dev

bash: syntax error near unexpected token `('

From Dev

bash: syntax error near unexpected token `}'

From Dev

-bash: syntax error near unexpected token `;'

From Dev

bash: syntax error near unexpected token `('

From Dev

syntax error near unexpected token `done' in bash code

From Dev

Bash : syntax error near unexpected token ' done '

From Dev

Bash: syntax error near unexpected token `else'

From Dev

Syntax error near unexpected token `done'

From Dev

bash: syntax error near unexpected token

From Dev

Bash - syntax error near unexpected token `fi'

From Dev

Bash script: syntax error near unexpected token?

From Dev

-bash: syntax error near unexpected token `done' in script

From Dev

bash: syntax error near unexpected token `-o'

From Dev

BASH: syntax error near unexpected token `done'

From Dev

bash: syntax error near unexpected token `do'

From Dev

bash: syntax error near unexpected token '<'

From Dev

bash: syntax error near unexpected token `;'

From Dev

'if' statement causing 'syntax error near unexpected token `done'' in bash script

From Dev

bash: syntax error near unexpected token `foo'

From Dev

Bash script: syntax error near unexpected token `('

From Dev

syntax error near unexpected token `done'

Related Related

  1. 1

    bash: syntax error near unexpected token `('

  2. 2

    syntax error near unexpected token ' - bash

  3. 3

    cygwin syntax error near unexpected token `done'

  4. 4

    -bash: syntax error near unexpected token

  5. 5

    BASH: syntax error near unexpected token `done' with alias named 'do'

  6. 6

    Bash syntax error near unexpected token `('

  7. 7

    Bash script: syntax error near unexpected token?

  8. 8

    Bash 'source': syntax error near unexpected token `then'

  9. 9

    bash: syntax error near unexpected token `('

  10. 10

    bash: syntax error near unexpected token `}'

  11. 11

    -bash: syntax error near unexpected token `;'

  12. 12

    bash: syntax error near unexpected token `('

  13. 13

    syntax error near unexpected token `done' in bash code

  14. 14

    Bash : syntax error near unexpected token ' done '

  15. 15

    Bash: syntax error near unexpected token `else'

  16. 16

    Syntax error near unexpected token `done'

  17. 17

    bash: syntax error near unexpected token

  18. 18

    Bash - syntax error near unexpected token `fi'

  19. 19

    Bash script: syntax error near unexpected token?

  20. 20

    -bash: syntax error near unexpected token `done' in script

  21. 21

    bash: syntax error near unexpected token `-o'

  22. 22

    BASH: syntax error near unexpected token `done'

  23. 23

    bash: syntax error near unexpected token `do'

  24. 24

    bash: syntax error near unexpected token '<'

  25. 25

    bash: syntax error near unexpected token `;'

  26. 26

    'if' statement causing 'syntax error near unexpected token `done'' in bash script

  27. 27

    bash: syntax error near unexpected token `foo'

  28. 28

    Bash script: syntax error near unexpected token `('

  29. 29

    syntax error near unexpected token `done'

HotTag

Archive