Para con el valor de lectura

¿De qué manera difiere el valor final del número asignado por el read var number (e ingresamos 5) y el number=5 ? Estaba haciendo esto para bucle:

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

cuando noté que si el número tiene el valor asignado por la lectura, en lugar de la asignación directa, no ingresa mi. Supongo que es por el tipo de datos.

Si cambia la primera línea a

 read number 

obtendrás el comportamiento que estás buscando.

 read var number 

lee dos valores y los almacena en variables llamadas var y number . Si solo ingresa un valor, seq 1 $number expande a la seq 1 que es solo 1 .