Autor Wątek: Problem z funkcjami  (Przeczytany 2911 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

ketaq

  • Gość
Problem z funkcjami
« dnia: Kwietnia 24, 2012, 01:22:35 »
Hi ho. Dostalem od swojego cwiczeniowcy takie zadanie do zrobienia
stworzyć Menu w oparciu o scenariusze. Poniższe elementy mają być funkcjami

a) Dla podanej nazwy użytkownika (zmienna zewnętrzna) wyświetlić natępujące informacje:
- katalog domowy
- powłoka
- hasło
- Liczbę obiektów w katalogu domowym
- Lista obiektów w katalogu domowym
Informacje zapisać do pliku. Nazwę pliku (zmienna zewnętrzna). Jeżeli plik nie istnieje to wyświetlić informację, że nie można wykonać i wtedy zapytać się czy utworzyć plik. Jeżeli TAK to utworzyć jeżeli NIE to nie utworzyć. Dopisać do pliku liczbę znaków zawartych w pliku w posatci "Plik zawiera X znakow".
Menu jest również funkcją. Przekazujemy wartości zmiennych do menu a następnie do funkcji.

i teraz jest uno problemo :P nawet ze zrozumieniem, z racji ze chmod np.: 700 mozna rozumiec jako "wlasciciela" czy 777 jako pelne prawa nad plikiem i teraz powstalo mi takie cus
#!/bin/bash
$1=`/home/simonmm/`
menu()
{

select x in 644 655 544 pelneprawa wlasciciel  wyjscie
        do
                case $x in

                644) 644
                        grupa
                        modyfikacja
                        czyzapisac;;

                655) 655
                        grupa
                        modyfikacja
                        czyzapisac;;

                544) 544
                        grupa
                        modyfikacja
                        czyzapisac;;

                777) pelneprawa
                     czyzapisac;;

                700) wlasciciel
                     czyzapisac;;

                wyjscie) wyjscie;;

                esac
                break
        done
}
pelneprawa()
{
find /home/simonmm -user simonmm -perm 777
}

wlaciciel()
{
find /home/simonmm -type f -user simmon
}


grupa()
{
if [ $x == "644" ]; then
        find /home/simonmm/ -group simonmm -perm 644

elif [ $x == "655" ]; then
        find /home/simonmm/ -group simonmm -perm 655

elif [ $x == "544" ]; then
        find /home/simonmm/ -group simonmm -perm 544
fi
}

modyfikacja()
{
if [ $x == "644" ]; then
        date -r /home/simonmm/ | find -perm 644

elif [ $x == "655" ]; then

        date -r /home/simonmm/ | find -perm 655

elif [ $x == "544" ]; then
        date -r /home/simonmm/ | find -perm 544
fi
}

wyjscie()
{
break;
}
zliczanieznakow()
{
wc -m $1 | cut -f1 -d" "
}

zliczanielinii()
{
wc -l $! | cut -f1 -d" "
}


czyzapisac()
{

if [ ! -e $1 ]; then
        echo "Nie mozna wykonac pracy."
        echo "Czy chcesz utworzyc/dopisac nowy plik?"
        read odpowiedz
        if [ $odpowiedz == "tak" ]; then
                touch $1

                if [ $x == "644" ]; then
                modyfikacja >> $1
                grupa >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1

                elif [ $x == "755" ]; then
                modyfikacja >> $1
                grupa >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1

                elif [ $x == "777" ]; then
                modyfikacja >> $1
                grupa >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1

                elif [ $x == "544" ]; then
                modyfikacja >> $1
                grupa >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1


                elif [ $x == "pelneprawa" ]; then
                pelneprawa >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1

                elif [ $x == "wlasciciel" ]; then
                wlasciciel >> $1
                echo 'Plik ma' `zliczanieznakow` 'znakow' >> $1
                echo 'Plik ma' `zliczanielinii` 'linii' >> $1
                fi
        else
                break
        fi
fi
}
menu

To teraz moje pytanie - co gdzie zwalilem, bo juz sie troche przy tej "robocie" pogubilem ;/ ?

Pozdrawiam