bashshellsyntaxsh

"[0: command not found" in Bash


I am trying to get the array in the while-loop and need to update the value in array too.

Below is my code what I have tried. I get this error [0: command not found

#!/bin/bash
i=0
while [$i -le "{#myarray[@]}" ]
do 
    echo "Welcome $i times"
    i= $(($i+1)))
done

How do I fix this?


Solution

  • Need a space after [ and no space before or after = in the assignment. $(($i+1))) would try to execute the output of the ((...)) expression and I am sure that's not what you want. Also, you are missing a $ before the array name.

    With these things corrected, your while loop would be:

    #!/bin/bash
    i=0
    while [ "$i" -le "${#myarray[@]}" ]
    do 
      echo "Welcome $i times"
      i=$((i + 1))
    done
    

    See also: