
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-1
ciclos? Intenté esto $1-1
pero 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.