SYSTEMY OPERACYJNE. skrypty BASH - zadania wprowadzające:

Podobne dokumenty
Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

- wszystkie elementy - wszystkie elementy

Powłoka (shell) Powłoka ksh

Technologie Informacyjne - Linux 3

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

System operacyjny Linux

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Systemy operacyjne 11

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie w BASH u Skrypt do ćwiczeń

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

1 Przygotował: mgr inż. Maciej Lasota

Środowisko programisty Zestaw 7

Wprowadzenie do programowania w powłoce

Tworzenie skryptu: Skrypty powłoki

Strona1. Linux. Skrypty powłoki

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Przekierowanie wejścia wyjścia:

Skrypty powłoki w systemie Linux

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Programowanie skryptów powłoki

Powłoka bash. Kurs systemu Unix 1

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Interpreter poleceń oraz zmienne środowiskowe

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

PODSTAWY INFORMATYKI

Filtry, metaznaki, cytowania. Proste skrypty. Polecenia find, tee, mail.

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Pracownia Komputerowa wykład III

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Technologie Informacyjne - Linux 2

Instrukcje sterujące

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Bash - instrukcje warunkowe, pętle i funkcje

Kurs pisania skryptów w powłoce BASH

Ćwiczenie nr 14: System Linux

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Bash, skrypty. Wojciech Dudek. 15 listopada Uniwersytet Warszawski

Podstawy programowania w Bash'u

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Systemy Operacyjne. Część II Zarządzanie/Administracja Systemem. 5: Skrypty. autor: mgr inż. Andrzej Woźniak

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Laboratorium Ubuntu Linux.

Powłoka interpreter poleceń systemu UNIX

Wstęp do Informatyki dla bioinformatyków

Proste programy w C++ zadania

SSK - Techniki Internetowe

Wstęp do systemu Linux

Pracownia Komputerowa wykład III

#!/bin/sh. if [ "$#"!= "1" ]; then echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" exit 1 fi

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Technologie informacyjne lab. 4

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

PODSTAWY INFORMATYKI

System operacyjny Linux

Programowanie w Bashu

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Sprawdzić stan bieżący dysków w komputerze. Używając poleceń interpretera przeanalizować strukturę katalogów znajdujących się na dyskach komputera.

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

1 Powtórzenie wiadomości

pozwalają na umieszczenie wielu komend w jednym pliku (z atrybutem wykonywania) - udostępnia środowisko do konfigurowania systemu i programowania

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Podstawy programowania skryptów Sh

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Wyrażenia regularne. Wyrażenia regularne 1/41

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Przypomnienie komend linux'a.

TEMAT : System operacyjny MS DOS pliki wsadowe

BASH - WPROWADZENIE Bioinformatyka 4

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Systemy operacyjne Programowanie w języku powłoki sh

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Linuks skrypty Część teoretyczna

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Warsztaty dla nauczycieli

Umieszczanie kodu. kod skryptu

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Podstawy Programowania.

Programowanie - wykład 4

Laboratorium nr 1. i 2.

K. Konopko; Skrypty powłoki. Skrypty powłoki. dr inż. Krzysztof Konopko

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Język C, instrukcje sterujące (laboratorium)

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Transkrypt:

SYSTEMY OPERACYJNE M E N U Ogłoszenia Plan_laboratoriów Laboratorium_1 Laboratorium_2 Laboratorium_3 Laboratorium_4 Laboratorium_5 Laboratorium_6 Kol_1_n_03_04 Kol_1_imn_03_04 Kol_konkurs1 Giełda_zadań Laboratorium_8 Laboratorium_9 Laboratorium_10 Linki Laboratorium_6 skrypty BASH - zadania wprowadzające: 1. Ostatnia aktualizacja: 2005-03-30 11:08:17 Podaj przykład skryptu wykorzystującego zmienne śrowiskowe, zmienne programowe i odwrotne apostrofy (Użyj $USER, $PWD, $HOME.). echo "Czesc $USER" echo "twoj aktualny katalog to $PWD" zmienna="a to twoj katalog mowy to $HOME" echo $zmienna echo "nazwa twojego hosta to: $HOSTNAME" echo "korzystasz z systemu operacyjnego: $OSTYPE" zmienna2=`pwd` echo ""Odwrotny cudzyslow" - przyklad: $zmienna2" 2. #zero oznacza sukces Podaj przykład skryptu wykorzystującego zmienne specjalne. (Użyj $0, $1, $2,..., $9, $@, $*, $?, $$.) echo "Nazwa biezacego skryptu: $0" echo "Pierwszy przekazany parametr skryptu: $1" echo "Drugi przekazany parametr skryptu: $2" echo "..." echo "Dziewiaty przekazany parametr skryptu: $9" #separatorem będzie spacja echo "Skrypt uruchomiono z parametrami: $@" #separator okresla zmienna $IFS echo "Skrypt uruchomiono z parametrami: $*" echo "Kod powrotu ostanio wykonywanego polecenia: $?" echo "PID procesu biezacej powloki: $$" 3. Podać przykład skryptu używającego tablice (Użyj declare, unset, *, @, # ). owoc[0]="jablko" owoc[1]="gruszka" owoc[2]="sliwka" owoc[3]="wisnia" echo "Pierwszy element tablicy owoc to: ${owoc[0]}" echo "Wszystkie elementy tablicy owoc to: ${owoc[*]}" echo "Wszystkie elementy tablicy owoc to: ${owoc[@]}" echo "Drugi element tablicy owoc ma ${#owoc[1]} znakow" echo "Tablica owoc ma ${#owoc[*]} elementy" imie=(jola Ania Kasia Basia Magda) echo "Wszystkie elementy tablicy imie to: ${imie[@]}" unset imie #usuniecie tablicy echo "Tablica imie ma ${#imie[*]} elementow" tab1=(`cat /etc/passwd`) echo "Tablica tab1 ma ${#tab1[*]} elementow" declare tab2=(`cat /etc/passwd`) echo "Tablica tab2 ma ${#tab2[*]} elementow"

4. 5. 6. Napisać skrypt obliczający sumę, różnicę i iloczyn dwóch wczytanych liczb całkowitych. (Użyj polecenia read.) echo -n "Podaj pierwsza liczbe: " read l1 echo -n "Podaj druga liczbe: " read l2 echo suma=$[l1 + l2] #1 sposob echo "Suma liczb wynosi: $suma" roznica=$((l1 -l2)) #2 sposob echo "Roznica liczb wynosi: $roznica" let iloczyn=l1*l2 #3 sposob echo "Iloczyn liczb wynosi: $iloczyn" iloraz=$[l1 / l2] echo "Iloraz liczb wynosi: $iloraz" #czesc calkowita modulo=$[l1 % l2] echo "Modulo liczb wynosi: $modulo" #reszta Napisać skrypt sprawdzający, czy w katalogu głównym użytkownika istnieje plik.bashrc. (Użyj instrukcji warunkowej if.) #Warunki dla pliku: #-d plik, plik jest katalogiem #-e plik, plik istnieje #-f plik, plik jest plikiem regularnym #-g plik, plik ma przypisany set-gropu-id #-r plik, plik daje się odczytac #-s plik, plik ma niezerowy rozmiar #-u plik, plik ma przypisany set-user-id #-w plik, plik można edytowac (można pisac)) #-x plik, plik wykonywalny if [ -e ~/.bashrc ] #powyzsze jest rownowazne: if test -e ~/.bashrc echo "Masz plik.bashrc" echo "Nie masz pliku.bashrc" Napisać skrypt pytający się czy jest wieczór. Dla odpowiedzi 'tak' powinien wypisać 'Dobry wieczor', dla odpowiedzi 'nie' - 'Dzien bry', dla pozostałych odpowiedzi 'Nie rozpoznana odpowiedz: ' i przytoczyć treść odpowiedzi. (Użyj instrukcji warunkowej if-elif.) #Porownywanie ciagow: #ciag, ciag jest niepusty #ciag1=ciag2, ciagi sa jednakowe #ciag1!=ciag2, ciagi nie sa rowne #-n ciag, ciag nie jest NULL #-z ciag, ciag jest NULL (pusty) echo -n "Czy jest wieczor? Odpowiedz tak lub nie: " read poradnia if [ "$poradnia" = "tak" ] echo "Dobry wieczor" elif [ "$poradnia" = "nie" ] echo "Dzien bry" echo "Nie rozpoznana odpowiedz: $poradnia"

7. 8. 9. 10. 11. Napisać skrypt pobierający numer dnia tygodnia i wypisujący jego nazwę lub informację "Nic nie wybrałeś". (Użyj polecenia read i instrukcji warunkowej case.) echo "Podaj numer dnia tygodnia: " read dzien case "$dzien" in "1") echo "Poniedzialek" ;; "2") echo "Wtorek" ;; "3") echo "Sroda" ;; "4") echo "Czwartek" ;; "5") echo "Piatek" ;; "6") echo "Sobota" ;; "7") echo "Niedziela" ;; *) echo "Nic nie wybrales" esac Wyświetlić z bieżącego katalogu nazwy wszystkich plików: *.html, *.htm, *.php, *.css, *.gif, *.jpg. (Użyj pętli for.) for nazwa in *.html *.htm *.php *.css *.gif *.jpg echo $nazwa Napisać skrypt wykonujący pętlę 15 razy i wypisujący za każdym razem numer obiegu pętli. (Użyj pętli while.) #Operatory wykorzystywane w warunkach (wyr warunek wyr): #-eq (==), -ne (!=), -lt (<), -le (<=), -gt (>), -ge (>=) n=1; #gdy warunek stanie się fałszywy to petla zakonczy dzialanie while [ $n -le 15 ] echo "Petla wykonuje sie po raz: $n" n=$[n + 1] Napisać skrypt sprawdzający, czy użytkownik, którego login został podany jako parametr skryptu zalogował się. (Użyj pętli until.) until who grep "$1" > /dev/null #gdy warunek stanie się prawdziwy to petla zakonczy dzialanie sleep 60 echo -e a echo "$1 wlasnie sie zalogowal!!! " Napisać skrypt pytający się użytkownika co wybiera: kawe, herbate, sok, quit. Po wybraniu kawy, herbaty lub soku powinna pojawić się informacja co zostało wybrane. Po wybraniu quit skrypt powinien zakończyć działanie. (Użyj pętli select i instrukcji warunkowej case.) echo "Co wybierasz?" select x in kawe herbate sok quit

case $x in "kawe") echo "Wybrales kawe." ;; "herbate") echo "Wybrales herbate." ;; "sok") echo "Wybrales sok." ;; "quit") echo "Wybrales quit."; break ;; *) echo "Nic nie wybrales." esac 12. Zmienić nazwy plików i katalogów pisane dużymi literami na nazwy pisane małymi literami. 13. for nazwa in * mv $nazwa `echo $nazwa tr '[A-Z]' '[a-z]'` Napisać funkcję sprawdzają, czy dany rok jest rokiem przestępnym. Następnie napisać skrypt, który dla wolnej ilości argumentów sprawdza, czy rok podany jako argument jest rokiem przestępnym. function przestepny() { rok=$1 let t=$rok%4 let s=$rok%100 let z=$rok%400 if [$z -eg 0 -o $t -eq 0 -a $s -ne 0 ] ; return 0 return 1 } for i in $*; if przestepny $i ; echo " $rok: rok przestepny" echo "$rok: rok nieprzestepny" Karolina Wojcik ++ Zadania - skrypty 1. Napisać skrypt, który będzie działał jak funkcja 'Znajdź i Zamień'. Skrypt powinien modykować wszystkie pliki o zadanym rozszerzeniu znajdując szukany wzorzec i zamieniając go na inny wzorzec. PLIKI="*.htm" WZORZEC1="H1"; WZORZEC2="H2"; for plik in `nd. -path "$PLIKI"` echo $plik sed "s/$wzorzec1/$wzorzec2/g" $plik > wynik.tmp mv wynik.tmp $plik ; rm wynik.tmp 2. Napisać skrypt obliczający sumę wczytanych liczb aż napotkania zera. SUMA=0

echo "Wpisz liczby calkowite (0 to koniec):" while true ; read LICZBA SUMA=$[$SUMA+$LICZBA] if [ $LICZBA = "0" ] ; break echo "Suma wczytanych liczb wynosi: $SUMA" --------------------------------------------------------- n=0 l=1 while [$l -ne0] read l n=$[l+n] echo suma:$n Magdalena Wiesner ++ 3. Napisać skrypt obliczający silnię z liczby naturalnej podanej jako parametr skryptu. 4. if [ $# -eq 0 ] echo "Prawidlowe wywolanie skryptu: $0 liczba_naturalna" silnia=1 for (( i=1; i<=$1; i++ )) silnia=`expr $silnia * $i` echo "Silnia z liczby $1 = $silnia" ---------------------------------------------------- n=1 i=1 if [ $1 -lt 0] echo "Liczba < 0!" while [$i -le $1] n=$[n*$i] i=$[i+1] echo "$n" #Marcin Rutkowski ++ Napisać skrypt pakujący katalog pliku, który w nazwie ma aktualną datę. Nazwa katalogu powinna być przekazana jako parametr skryptu. Skrypt powinien obsługiwać przypadki gdy nie podano parametru i gdy podany parametr nie jest katalogiem. if [ $# -eq 0 ] echo "Prawidlowe wywolanie skryptu: $0 nazwa_katalogu" if [ -d $1 ] tar zcvf `date '+%d-%m-%y'`.tar.gz $1

5. echo "Podany parametr powinien byc katalogiem" -------------------------------------------------------- if [ $1 ] if [ -d $1 ] tar -cvvf 2005-03-23.tar.gz $1/ echo " $1 nie jest katalogiem " echo " nie podano parametru " #Justna Benkowska ++ Napisać skrypt rysujący trójkąt równoramienny z gwiazdek o podstawie podanej przez użytkownika jako parametr skryptu. if [ -z $1 ] echo "Prawidlowe wywolanie skryptu: $0 podstawa_trojkata" liczba=$1 i=1 pom=1 while [ "$i" -le $liczba ] j=$i while [ "$j" -le $liczba ] echo -n "*" j=$(($j+1)) echo "" pomoc=1 while [ "$pomoc" -le $pom ] echo -n " " pomoc=$(($pomoc+1)) pom=$(($pom+1)) i=$(($i+2)) echo "" ----------------------------------------------------------- echo Podaj dlugosc podstawy: read x i=$[x] declare tab[x] declare tab2[x] while [ $x -gt 0 ] tab[x]='*' x=$[x-1] x=$[x-1] j=$[x]

6. 7. 8. 9. while [ $x -gt 0 ] j=0 while [ $j -le $[i-x-1]] tab2[j]='*' j=$[j+1] x=$[x-1] echo "${tab2[*]}" echo "${tab[*]}" Piotr Jarosz Napisać skrypt sprawdzający, czy istnieje podany jako parametr plik i wypisujący odpowiedni komunikat na ekranie. test -e $1 if [ $? -gt 0 ] ; echo plik nie istnieje echo plik istnieje Karolina Wojcik ++ Jak wyżej, jeśli plik istnieje powinien pojawić się napis że plik o podanej nazwie istnieje, w przeciwnym razie plik taki powinien zostać utworzony tak, by jego pierwszą linię stanowił napis "To jest nowy plik". (Bez użycia edytora vi.)!# /bin/bash if [-e $1] echo "Podany plik istnieje" echo "To jest nowy plik" > $1 #Marcin Rutkowski ++ Napisać skrypt kopiujący wszystkie pliki o rozszerzeniu ".txt" podanego jako argument katalogu, jeśli podany katalog nie istnieje należy go najpierw stworzyć. if [-e $1] echo "katalog $1 istnieje" echo "katalog $1 nie istnieje wiec go teorzymy" mkdir $1 cp *.txt $1 Justna Benkowska ++ Napisać skrypt usuwający wszystkie pliki z katalogów "podkatalog1" i "podkatalog2". Przed usunięciem nazwa pliku powinna zostać wypisana na ekranie terminala, datkowo przy usuwaniu powinno pojawić się pytanie o potwierdzenie. rm -i $1/* rm -i $2/* LUKASZ KOMAR + ---------------------------------------------------- #!/bin/sh i=1 while [ $i -le $#] rm -ivr $1/* shift

Paweł Brzeski ++ 10. 11. 12. 13. 14. 15. ----------------------------------------!# /bin/bash rm -i -r $@ LUKASZ KOMAR ++ Napisać skrypt, który jako parametry przyjmuje nazwę pliku, ściężkę katalogu i nową nazwę pliku, pod którą plik będzie pamiętany w katalogu i jego podkatalogach, a następnie powiela plik w tym katalogu i wszystkich jego podkatalogach (1 poziom w głąb), informując o tym użytkownika. W wyniku błędnie podanych parametrów należy wyświetlić informację na ekranie terminala informującą o tym. Napisać skrypt zawierający informacje o każdym podkatalogu znajdującym się w katalogu podanym jako argument, obejmującą nazwę podkatalogu i liczbę znajdujących się w nim plików.!# /bin/bash ls -l $@ LUKASZ KOMAR ++ Sporządzić listę plików, znajdujących się w katalogu mowym, posortowanych malejąco według numerów i-węzłów. (i-węzeł pliku znajduje się w pierwszej kolumnie po wydaniu polecenia "ls -i".) ls -i sort -r Malgorzata Krzyzanowska + Napisać skrypt porównujący zawartość pliku o zadanej jako parametr nazwie ze wszystkimi plikami, których nazwy występują w pliku o nazwie "lista.plikow" Jeśli podana jest nazwa katalogu jako argument, to należy wylistować zawartość katalogu, w przeciwnym wypadku należy zapytać uzytkownika o nazwę katalogu i wylistować podany katalog. KATALOG="$1" if [ -n "KATALOG" -a -d "KATALOG" ] ; ls $KATALOG exit while terue ; echo read -p "podaj katalog:" KATALOG if [ -z "KATALOG" ] ; continue if [ -d KATALOG ] ; ls $KATALOG exit Karolina Wojcik Jak wyzej, w przypadku nacisnięcia litery "q", po wydaniu zapytania należy przerwać wykonanie skryptu. #!/bin/sh if [ -d $1 ] ls -l $1 echo "Podaj nazwe katalogu: " read katalog case "$katalog" in "q" ;;

16. 17. 18. 19. 20. 21. 22. 23. esac if [-d $katalog] ls -l $katalog Piotr Kisieliczyn +++ Jak wyżej, jeśli katalog jest pusty, podać odpowiedni komunikat, datkowo opcjonalnie dać drugi parametr będący liczbą sekund, na którą system wstrzyma wykonanie skryptu. Napisać skrypt sprawdzający, czy któryś z użytkowników o id podany jako parametr wejsciowy jest zalogowany w systemie wiecej niż jeden raz. Dla każdego takiego użytkownika należy wyświetlić jego identykator i listę terminali, na których pracuje. Informacje o kolejnych użytkownikach powinny być oddzielone ciągiem gwiazd. Napisać skrypt zapisujący pliku o nazwie "plik.usr", pełną informację o użytkownikach, którzy mają aktualnie odblokowane przyjmowanie komunikatów na terminal. Napisać skrypt liczący łączną liczbę słów z pierwszych trzech linii plików zaczynających się na "p" lub "k". Napisać skrypt wyświetlający w odwrotnej kolejności argumenty jego wywołania. (np. skrypt a b c d => d c b a) Wysłać za pomocą poczty elektronicznej wszystkich aktualnie zalogowanych użytkowników systemu wiamość zapisaną w pliku wiamość w taki sposób, aby wiamość została wysłana osobno dla każdego użytkownika!/bin/bash adresy='who cut -f1 -d " " sort -n' for ile in $adresy mail $ile -s "Teamt" < wiamosc Piotr Kisieliczyn Napisać skrypt, który dla katalogów podanych jako parametry odnajdzie i wyświetli nazwę najbardziej zagłębionego podkatalogu oraz jego poziom zagłębienia. Skrypt nie może wyświetlać komunikatów o błędach oraz, jeżeli zostanie uruchomiony bez parametrów, powinien wyświetlić stosowną informację i zakończyć działanie. #!bin/bash if [$# -eq 0] echo "Podaj parametry: nazwy katalogow sprawdzenia" exit for katalog in $* nd $katalog - type d 2 >/dev/null awk -F/ '{print $0 ":" NF -1}' sort -t: +1nr head -1 awk -f:'{print $1 "\t" $2}' Magdalena Wiesner Napisz skrypt pracujący w pętli, wyświetlający komunikat "Podaj polecenie: " i pobierający ciąg znaków z klawiatury. Dopuszczalne polecenia to "katalog", "grupa" i "koniec". Polecenia mogą datkowo zawierać argument, będący nazwa użytkownika (jeżeli nazwa nie zostanie podana, skrypt zapyta o nią). W zależności od polecenia, zadaniem skryptu jest wyświetlenie katalogu mowego lub numeru grupy użytkownika. Polecenie "koniec" powoduje zakończenie pracy skryptu. x=1; while [ $x!= 0 ] echo "Podaj polecenie:"

24. read polecenie case $polecenie in esac "katalog") echo "Podaj nazwe uzytkownika:"; read user; echo "Katalog mowy to:"; grep $user /etc/passwd cut -d ':' -f6,6;; "grupa") echo "Podaj nazwe uzytkownika:"; read user; echo "Numer grupy to:"; grep $user /etc/passwd cut -d ':' -f4,4;; "koniec") x=0;; Piotr Jarosz Napisać skrypt sprawdzający czy któryś z użytkowników o identykatorach podanych w argumentach wejściowych nadał grupie lub innym prawa r, w lub x swojego katalogu. Jeśli tak to należy wyświetlić na ekranie i zapisać pliku o nazwie users.right odpowiednie informacje. Jeśli podano błędne parametry skrypt powinien wyświetlić informację o tym jak należy go używać. Copyright by Robert Fidytek.