El siguiente código trata del método de ordenamiento Shell en bash:
#!/bin/bash function shell { lista=$1 tam=${#lista[@]} for inc in $(seq 1 $[$[inc*3]+1] $[$tam-1]) ; do while [ $inc -gt 0 ] ; do for i in $(seq $inc $[$tam-1]) ; do j=$i temp=${lista[$i]} while [[ $j -ge $inc && ${lista[$[$j-$inc]]} -gt $temp ]] ; do lista[$j]=${lista[$[$j-$inc]]} j=$[$j-$inc] done lista[$j]=$temp done inc=$[$inc/2] done done } lista=(5 4 3 2 1) shell $lista for i in ${lista[@]};do echo $i; done