qual o erro no meu shell script ?

1. qual o erro no meu shell script ?

Pedro
D3arW4y

(usa Mandriva)

Enviado em 16/12/2009 - 08:49h

fiz esse shell script :

#!/bin/sh

for ((a=1; a<100; a++))
do
GET'url.com'
done


mas ele me retorna o erro :

./head.sh: 3: Syntax error: Bad for loop variable


o q pode ser ?

obrigado




  


2. Re: qual o erro no meu shell script ?

Takahashi
signout

(usa Slackware)

Enviado em 16/12/2009 - 09:03h

Boas...
Ele esta reclamando da variável que voce esta utilizando no loop.
Se voce quer um for de 100 passos:

for a in $(seq 100)
do

comando
done

A sintaxe da variavel que voce utilizou é para C, PHP, etc...se não me engano.
Creio que se voce utilizar o #!/bin/csh ou #!/bin/ksh como interpretador, a sua variável funcione.

Espero que ajude.
[]s


3. Re: qual o erro no meu shell script ?

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 16/12/2009 - 09:08h

Aqui ó:

GET'url.com'


4. Re: qual o erro no meu shell script ?

Leonardo Damasceno
leodamasceno

(usa Debian)

Enviado em 16/12/2009 - 09:29h

Bem, o signout está certo em parte, mas essa sintaxe também serve sim para shell script, apesar de que a que ele citou é mais comum.

O pensamento para criar um script utilizando Bash Script, é totalmente diferente.

Bem analisando o seu script, não vi nada de errado, testei a seguinte linha:
for ((a=1; a<100; a++)); do echo 'teste'; done

E realmente, ele escreve a palavra "teste" até a condição ser satisfeita, ou seja, de 1 até 99.

Realmente eu não entendi esse GET'url.com' o.O, pode explicar?



5. Re: qual o erro no meu shell script ?

Denis Doria
thuck

(usa Debian)

Enviado em 16/12/2009 - 20:22h

Troque o #!/bin/sh por #!/bin/bash; provavelmente o seu sh está apontando para um shell que não é um bash, e que não aceita essa sintaxe de for.
Exemplo:

thuck@thuck:~/programacao/scripts$ dash
$ for((a=1;a<10;a++)); do echo $a; done
dash: Syntax error: Bad for loop variable
$ bash
thuck@thuck:~/programacao/scripts$ for((a=1;a<10;a++)); do echo $a; done
1
2
3
4
5
6
7
8
9


Se vc está usando debian, vc deve saber q o bash foi trocado pelo dash para os scripts de inicialização para ter um ganho de memória e performance, porém o dash tem menos recursos.


6. Re: qual o erro no meu shell script ?

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 17/12/2009 - 08:47h

-------
Troque o #!/bin/sh por #!/bin/bash; provavelmente o seu sh está apontando para um shell que não é um bash, e que não aceita essa sintaxe de for.
-------

Realmente.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts