Saltar al contenido

bash variables en el rango de bucle

Este team de expertos luego de ciertos días de trabajo y de recopilar de información, han obtenido los datos necesarios, esperamos que te sea útil en tu trabajo.

Solución:

Sí, eso se debe a que la expansión de llaves ocurre antes que la expansión de parámetros. O usa otro shell como zsh o ksh93 o use una sintaxis alternativa:

Sintaxis sh estándar (POSIX)

i=1
while [ "$i" -le "$number" ]; do
  echo "$i"
  i=$(($i + 1))
done

estilo Ksh for ((...))

for ((i=1;i<=number;i++)); do
  echo "$i"
done

utilizar eval (no recomendado)

eval '
  for i in 1..'"$number"'; do
    echo "$i"
  done
'

utiliza el GNU seq comando en los sistemas donde está disponible

unset -v IFS # restore IFS to default
for i in $(seq "$number"); do
  echo "$i"
done

(ese es menos eficiente ya que se bifurca y ejecuta un nuevo comando y el shell tiene que leer su salida de una tubería).

Evite los bucles en las conchas.

El uso de bucles en un script de shell a menudo es una indicación de que no lo está haciendo bien.

Lo más probable es que su código se pueda escribir de otra manera.

Ni siquiera necesita un bucle for para esto, solo use el seq mando:

$ seq 100

Ejemplo

Aquí están los primeros 10 números que se están imprimiendo:

$ seq 100 | head -10
1
2
3
4
5
6
7
8
9
10

Puedes usar lo siguiente:

for (( num=1; num <= 100; num++ ))
do
    echo $num
done

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *