29.01.06, 23:10
Napisz skrypt, ktory:
- przyjmuje dwa parametry:
- pierwszy parametr to nazwa uzytkownika (login)
- drugi parametr to maska
- sprawdza, czy podane zostaly dwa parametry;
jesli nie - wyswietla odpowiedni komunikat i informacje
jakie jest prawidlowe uzycie skryptu
oraz przerywa dzialanie
- wyswietla informacje o podanym uzytkowniku w formacie:
Uzytkownik: login_uzytkownika
imie_i_nazwisko_uzytkownika
Katalog domowy: nazwa_katalogu_domowego
- wstawia pusta linie
- wyswietla liste plikow (NIE KATALOGOW),
w katalogu domowym uzytkownika,
ktorych nazwy pasuja do podanej maski,
(przy czym lista plikow ma byc posortowana
malejaco wzgledem rozmiaru plikow)
i ma byc wyswietlana w formacie:
nazwa_pliku (rozmair_pliku)
Obserwuj wątek
    • user0001 Re: Skrypt 30.01.06, 11:49
      Każde zadanie da się rozwiązać na wiele sposobów. Wskazówki do Twojego zadania:

      Zmienna $# przechowuje liczbę parametrów, test $# -eq 1; sprawdzi czy jest
      dokładnie jeden parametr.

      Dane które są Tobie potrzebne do środkowej części zadania znajdują się w pliku
      /etc/passwd. Grepując po loginie odnajdziesz właściwą linijkę. Przekażesz ją
      rurą do cut -d:, każde z pól wyświetl osobnym wywołaniem grep i cut, do
      wyświetlenia nazwiska użyj cut dwa razy, za drugim razem pola są rozdzielane
      przecinkiem.

      Trzecia część jest naciekawsza, oto moje podpowiedzi:
      ls -l -S - wyświetli wszystkie pliki i katalogi posortowane według rozmiaru
      grep -v - pozwoli usunięcie linijek pasujących do wzorca, zastosuj wzorzec
      pasujący do d na początku linijki
      tr -s " " - ściśnie kilka spacji w jedną
      cut do wyciągnięcia pól ewentualnie sed do nadania właściwej formy graficznej
      • hydroxyzine Re: Skrypt 30.01.06, 22:57
        Wtedy zadanie nie będzie wykonane w bashu. Zapomnij o grep i cut, uruchamianie
        tych zewnętrznych programów jest tu do niczego niepotrzebne. Wczytany wiersz
        rozbija się na słowa za pomocą read. Read -a nazwa_tablicy wrzuci do tablicy
        ${nazwa_tablicy[]} poszczególne słowa, rozdzielone separatorem IFS (dla potrzeb
        /etc/passwd ma być IFS=: ). Porównujesz if-em, masz do dyspozycji pętlę - to
        wszystko, czego potrzeba.

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka