Bash Sortierungsprogramm


#!/bin/bash

if [ -f "$0.out" ]
then
    read -p "Soll die existierende Ausgabedatei "uberschrieben werden und das Programm erneut ausgef"uhrt werden? (yes/no)" yesno
    while [[ "$yesno" != "yes" && "$yesno" != "no" ]]
    do
        read -p "Soll die existierende Ausgabedatei "uberschrieben werden und das Programm erneut ausgef"uhrt werden? (yes/no)" yesno
    done
    if [ "$yesno" == "yes" ]
    then
        rm "$0.out"
        /bin/bash "$0"
    fi
else
    date > "$0.out"
    i=0
    M=()
    while [ $i -lt 16 ]
    do
        M+=($(($RANDOM)))
        i=$(($i+1))
    done
    i=0
    while [ $i -lt 16 ]
    do
        echo "${M[$i]}" >> "$0.out"
        i=$(($i+1))
    done
    echo " " >> "$0.out"
    echo "Sorted" >> "$0.out"
    echo " " >> "$0.out"
    i=0
    while [ $i -lt 16 ]
    do
        j=$(($i+1))
        while [ $j -lt 16 ]
        do
            if [ "${M[$i]}" -gt "${M[$j]}" ]
            then
                t="${M[$i]}"
                M[$i]="${M[$j]}"
                M[$j]=$t
            fi
            j=$(($j+1))
        done
        i=$(($i+1))
    done
    i=0
    while [ $i -lt 16 ]
    do
        echo "${M[$i]}" >> "$0.out"
        i=$(($i+1))
    done
    cat "$0.out"

fi
Ausgabe

Do 21. Nov 19:45:40 CET 2024
1880
12640
820
6439
14674
28299
18640
30000
19846
13894
8751
7706
31614
8449
2675
5547

Sorted

820
1880
2675
5547
6439
7706
8449
8751
12640
13894
14674
18640
19846
28299
30000
31614