Erro de variável de loop no loop for

5

Quando estou usando para gostar

 for i in 1 2 3 4 5 

meu arquivo contém #!/bin/sh no topo.

Mas quando estou usando

for(( i = 0; i<=5; i++))

então está mostrando o erro

Syntax error: Bad for loop variable

e funcionando corretamente quando eu remover shebang. Por favor, me diga a razão por trás disso.

    
por Gaurav Rai 06.01.2014 / 12:56

4 respostas

5

for(( i = 0; i<=5; i++)) é específico do Bash e não funciona com o shell Bourne simples ( /bin/sh ).

Se você remover o shebang, o script é executado pelo seu shell atual (que provavelmente é o Bash), então funciona.

Substitua #!/bin/sh por #!/bin/bash para que o shebang funcione.

    
por Florian Diesch 06.01.2014 / 13:05
1

Eu resolvi esse problema usando ./ em vez do comando sh. Por exemplo, se você colocar sh test.sh em vez disso, faça o seu comando como ./test.sh E provavelmente o problema será resolvido.

    
por dilantha111 21.11.2016 / 19:12
1
for(( i = 0; i<=5; i++))

para este tipo de loop só é executado no shell Bash. então, se você quer rodar isto, então tente este comando:

$bash filename.sh

Eu acho que vai funcionar bem. e veja também este .

    
por Sudip Das 27.03.2017 / 13:15
0

Tente isso pode ser que isso possa resolver seu problema

#!/bin/bash
j=0
for (( i=1; i <= 5; i++ ))
do
 echo "the loop is runing $i time: and value of j is $j"
 j='expr $j + 1'
done
    
por smn_onrocks 16.01.2014 / 12:55

Tags