Para com valor de leitura

1

De que maneira o valor final do número sendo atribuído por read var number (e digamos 5) e number=5 diferem? Eu estava fazendo este para loop:

read var number
#number=5
factorial=1
i=1
for i in 'seq 1 $number'
do
        let factorial=factorial*i
done
echo $factorial

quando notei que se o número tem o valor atribuído pela leitura, em vez da atribuição direta, ele não entra no meu para. Eu estou supondo que é por causa do tipo de dados.

    
por Peter 17.03.2017 / 11:39

1 resposta

3

Se você alterar a primeira linha para

read number

você terá o comportamento que está procurando.

read var number

lê dois valores e os armazena nas variáveis chamadas var e number . Se você inserir apenas um valor, seq 1 $number expandirá para seq 1 , que é apenas 1 .

    
por 17.03.2017 / 11:44