Problem z prostym skryptem "defragmentacja"

Potrzebujesz pomocy z C, C++, perl, python, itp.
mike26
Beginner
Posty: 170
Rejestracja: 07 czerwca 2012, 16:33

Problem z prostym skryptem "defragmentacja"

Post autor: mike26 »

Na podstawie jednego z wątków napisałem prosty skrypt do defragmentacji. Pojawił się jednak błąd którego rozwiązania nie mogę znaleźć.
Błąd powoduję case "5") tak mi się wydaje, done nie zostaje wykrywane.

Kod: Zaznacz cały

#!/bin/bash
while [ 1 ]
do
clear
echo "********************************************************"
echo "***********      Witam, co chcesz zrobić ?   ***********"
echo "********************************************************"
echo "1) Pobierz e2fsprogs (Jessie amd64)"
echo "2) Uruchom e4defrag"
echo "3) Sprawdź fragmentację partycji"
echo "4) Defragmentuj partycję"
echo "5) Błędy podczas defragmentacji"
echo "6) Zamknij skrypt"
echo -n "numer: "
read numer
case "$numer" in

    "1") wget http://ftp.pl.debian.org/debian/pool/main/e/e2fsprogs/e2fsprogs_1.42.12-1.1_amd64.deb
        echo "Podaj adres w którym znajduję się pobrany plik e2fsprogs"
        read adres
        dpkg -i $adres/e2fsprogs*
        echo "Aby kontynuować wciśnij enter"
        read
        continue;;

    "2") dpkg -S e4defrag
        echo "Aby kontynuować wciśnij enter"
        read
        continue;;

    "3") echo "Wskaż partycję którą chcesz sprawdzić np. sda1, sda2..."
        read system
        e4defrag -c /dev/$system
        echo "Aby kontynuować wciśnij enter"
        read
        continue;;

    "4") echo "Wskaż partycję którą chcesz Defragmentować np. sda1, sda2..."
        read system
        e4defrag  /dev/$system
        echo "Aby kontynuować wciśnij enter"
        read
        continue;;

    "5") echo "Błędy podczas defragmentacji"
        echo "a - wyświetl numery UUID partycji"
        echo "b - wskaż ręcznie katalogi do sprawdzenia np. /home, /etc, /usr"
        echo "c - wskaż ręcznie katalogi do defragmentacji np. /home, /etc, /usr"
        echo -n "numer: "
        read podprogram
        case "$podprogram" in

            "a") lsblk -f
                echo "Aby kontynuować wciśnij enter"
                read
                continue;;

            "b") echo "Podaj adres katalogu"
                read $katalog
                e4defrag -c $katalog
                echo "Aby kontynuować wciśnij enter"
                read
                continue;;

            "c") echo "Podaj adres katalogu"
                read katalog
                e4defrag $katalog
                echo "Aby kontynuować wciśnij enter"
                read
                continue;;

             *) echo "Podałeś/łaś zły numer"
               read
               continue;;

    "6") echo "Dozobaczenia ;) "
        read
        exit;;

     *) echo "Podałeś/łaś zły numer"
       read
       continue;;
esac
done
luki_s
Posty: 5
Rejestracja: 19 września 2015, 19:58

Post autor: luki_s »

na pewno brakuje 'esac' w case'ie zagniezdzonym w "5" ;)
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

A po nim continue;;
ODPOWIEDZ