Para colchetes de laço - C como sintaxe

0

Quando estou usando a sintaxe abaixo para iterar porque dois colchetes são necessários?

for (( expr1; expr2; expr3 ))
do
 command1
 command2
 ..
done

e o código abaixo não funciona? e lança o erro " erro de sintaxe próximo ao token inesperado" (' "

for ( expr1; expr2; expr3 )
do
 command1
 command2
 ..
done
    
por Pallab 01.01.2015 / 05:44

1 resposta

4

A razão para isso é ( tem um significado diferente. Na% man_de% manpage:

        (list) list  is  executed  in  a subshell environment 
               (see COMMAND EXECUTION ENVIRONMENT below).  Variable 
               assignments and builtin commands that affect the shell's 
               environment do not remain in effect  after  the  command  
               completes. The return status is the exit status of list.

        ((expression))
               The expression is evaluated according to the rules 
               described below under ARITHMETIC EVALUATION.  If  
               the  value  of the  expression  is non-zero, the return 
               status is 0; otherwise the return status is 1.  This is 
               exactly equivalent to let "expression".
    
por 01.01.2015 / 06:11