como fechar uma instrução while no script bc

2

Não consigo encontrar uma maneira de fechar a declaração while. O seguinte é o meu código de script bash.

bc << EOF
a=0;
while(a<10) a++;

print a;
EOF

A saída não é a esperada, ela imprime todos os valores a além do último. Por favor me ajude.

    
por dcnh35 10.07.2018 / 17:59

1 resposta

2

O resultado de uma operação é sempre impresso, a menos que seja uma atribuição. Então, vamos transformar a++ na atribuição a=a+1 .

bc <<END_BC
a = 0
while (a < 10) a = a + 1
print a, "\n"
END_BC

Alternativamente, mas um pouco mais enigmático (usando um loop while vazio):

bc <<END_BC
a = 0
while (++a < 10)
print a, "\n"
END_BC
    
por 10.07.2018 / 18:05