Alavanque uma construção de looping for
no estilo C:
#!/bin/bash
for ((x=1; x<1000000; x++)); do
curl -o index.html https://localhost/2389
done
Em ((x=1; x<1000000; x++))
:
-
x=1
inicializax
a 1 -
x<1000000
é a condição, o loop será executado contanto quex
seja menor que 1000000 -
x++
incrementax
adicionando 1 após cada execução de loop
Você tem alguns erros de sintaxe:
-
Para se referir ao valor de uma variável, você precisa de
$variable
, isto é, colocar$
na frente, e quase sempre é desejado ter uma citação em torno disso para evitar a divisão de palavras e a expansão glob:"$variable"
-
Não pode haver nenhum espaço em branco em torno de
=
ao declarar variáveis, s oa = 1000000
está errado. Você precisa dea=1000000
-
[ x < a]
: aqui[
não suporta operadores aritméticos como<
, você precisa usar-lt
(menor que), caso contrário, é apenas uma comparação de cadeia. Você precisa de:[ "$x" -lt "$a" ]
. Considere também usar o[[
incorporado debash
em vez de[
. Para operação aritmética, você pode usar((
também, isso permitirá que você use todos os operadores aritméticos -
x =x + 1
é um erro de sintaxe, você não pode ter espaços em branco em=
ao declarar variáveis como mencionado anteriormente, também+ 1
apósx
não significa nada e shell o tratará como palavra separada ( comando) com a variávelx=x
em seu ambiente. você precisa de(( x=x+1 ))
ou((x+=1))
ou simplesmente(( x++ ))
.
Assim, o seu script pode ter a forma final:
#!/bin/bash
# traffic between client and server
x=1
a=1000000
while (( x < a )); do
curl -o index.html https://localhost/2389
(( x++ ))
done