Menu-Driven Sorting Program in UNIX (Bash)

!/bin/bash

echo “Enter numbers separated by space:”
read -a arr

n=${#arr[@]}

while true
do
echo “————————“
echo “1. Sort Ascending”
echo “2. Sort Descending”
echo “3. Exit”
echo “Enter your choice:”
read choice

case $choice in

1)
    # Ascending Bubble Sort
    for ((i=0; i<n; i++))
    do
        for ((j=0; j<n-i-1; j++))
        do
            if [ ${arr[j]} -gt ${arr[j+1]} ]
            then
                temp=${arr[j]}
                arr[j]=${arr[j+1]}
                arr[j+1]=$temp
            fi
        done
    done
    echo "Sorted Array (Ascending): ${arr[@]}"
    ;;

2)
    # Descending Bubble Sort
    for ((i=0; i<n; i++))
    do
        for ((j=0; j<n-i-1; j++))
        do
            if [ ${arr[j]} -lt ${arr[j+1]} ]
            then
                temp=${arr[j]}
                arr[j]=${arr[j+1]}
                arr[j+1]=$temp
            fi
        done
    done
    echo "Sorted Array (Descending): ${arr[@]}"
    ;;

3)
    echo "Exiting program..."
    break
    ;;

*)
    echo "Invalid choice! Please try again."
    ;;

esac

done

Sample Output

Enter numbers separated by space:
8 3 5 1 9

  1. Sort Ascending
  2. Sort Descending
  3. Exit
    Enter your choice:
    1

Sorted Array (Ascending): 1 3 5 8 9

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *