Cómo hacer un bucle con $1 - 1 ciclos

Cómo hacer un bucle con $1 - 1 ciclos

Estoy intentando crear un script sh que use 'sed' para crear un algoritmo de clasificación de burbujas.

Estoy luchando, ¿cómo hacer un bucle?

for n in $1
do
   echo $n
done

¿Cómo puedo cambiar el cuerpo del bucle for para hacer solo n-1ciclos? Intenté esto $1-1pero no funciona. Imprimirá parte de la cadena y - 1.

Respuesta1

n-1 ciclossignifica que el último elemento no debe considerarse.

Utilice el siguiente enfoque (asumiendo que su argumento de entrada siempre será una cadena de subcadenas delimitadas por espacios):

s=$1

for n in ${s:0:-2}
do 
    echo $n 
done

${s:0:-2}- porción de elementos que contienen todos los elementos excepto el último

    ^  ^
    |  | 
  from to

Respuesta2

Usar for i in "$@" ; do echo $i ; done

No necesitas cotizar $1, no es necesario.

Editar: entendí mal. Si desea imprimir $1-1, echo $(( $i-1 )) si está intentando iterar i-1 veces, utilice una modificación de esto:

for ((i=1; i<=3; i++))
{
  echo $x
}

Publique su script 'bubblesort' completo o aclare su pregunta.

información relacionada