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
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