Nikt tu nie odrabia zadań domowych
ale, że dziś dzień dziecka:
1. Jest taka magiczna sprawa jak wcięcia/indentation, czas się nauczyć i stosować. Kodu wyżej praktycznie nie da się czytać.
2. Totalnie nie ogarniasz czegoś, co nazywa się przepływem sterowania/control flow:
* Używasz zmiennych przed ustawieniem ich wartości (np gdzie ustawiasz a gdzie używasz zmiennej NAZWA w choiceA/choiceB, zwłaszcza gałąź a|A)
* W przywracaniu totalnie nie ogarniasz rozróżnienia skąd chcesz przywrócić i dokąd chcesz zapisać przywrócone pliki. Polecenia na ekranie sugerują drugie a program robi pierwsze. Generalnie polecenia na ekranie są mocno mylące (a absolutnie nie wnikam w sprawy arcyokrutnej ortografii, bo nie o to pytasz) i user czasami nie wie, co ma wpisać. Na przykład w funkcji display_menu - klawisz A to "Default directory" czy "Create a backup", bo z menu nie wynika?
* Kompletnie nie ogarniam ostatniej pętli (ze $startmenu). Czemu ma służyć przy takiej kolejności echo/read/while/if?
* Poczytaj o zmiennych lokalnych/local variables, żeby uniknąć pierdyliona zmiennych choice/choice2/choice3 itd.
* Bash odpalony z parametrem -x działa jak swego rodzaju debugger, wyświetlając po kolei wszystko co robi. Łatwiej wtedy szukać błędów.
OT: Dundee ma kilka mniej stresujących kierunków niż CS...