• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

skrypt bash ubuntu

Object Storage Arubacloud
0 głosów
928 wizyt
pytanie zadane 1 czerwca 2017 w Systemy operacyjne, programy przez smyko_k Nowicjusz (140 p.)
Ogromna prośba. Na zaliczenie przedmiotu muszę napisać skrypt, ale mój poziom w tym temacie jest bardzo słaby. Proszę chociaż o pierwszych kilka punktów z poniższej listy.

I. Stworzyć menu w pliku skryptu o następującej postaci

*************************************************************************************************************************************

*************************************
* 1 - Zbierz informacje o systemie  *
* 2 - Wyswietl zapisane informacje    *
* 3 - Utworz grupe                    *
* 4 - Utworz uzytkownika            *
* 5 - Pobierz i przetworz plik      *
* 6 - Wyszukaj frazy w plikach      *
* 0 - Opuszczenie skryptu           *
*************************************

Wybierz opcje [1,2,3,4,5 lub 0] >

*************************************************************************************************************************************

Ogolne wymagania:
a) w zadaniu, za każdym razem ekran powinien być czyszczony (menu zawsze pojawia się na czystym ekranie)
b) wybranie opcji nr 5 powoduje opuszczenie skryptu
c) obsługa menu powinna być wykonana za pomocą instrukcji case
d) każde wykonanie polecenia z menu powinno być zatrzymane na 2 sekundy (zapoznaj się z komendą sleep) po to, by użytkownik mógł zobaczyć efekt
e) każda z opcji powinna być zrealizowana za pomocą instrukcji w skrypcie + funkcji
f) każda wartość powtarzalna powinna być zdefiniowana jako zmienna, np. w funkcji sleep będziemy korzystali zawsze (w każdym miejscu) z opóźnienia 2 sekundowego, zatem wartość tego opóznienia powinna być zdefiniowana jako zmienna,np delay_time=2. Wywołanie w kodzie będzie miało postać sleep $delay_time

1. Opcja "Zbierz informacje o systemie"
Opcja ta powinna tworzyć plik o nazwie zapisanej w zmiennej system_info_file.
Plik po wygenerowaniu powinien wygladać w sposób następujący:

*************************************************************************************************************************************

*** Informacje o systemie ***
Zalogowany uzytkownik : xubuntu
Katalog domowy        : /home/xubuntu
Informacje o pamieci:
----------------------------------------------------------------------
             total       used       free     shared    buffers     cached
Mem:    2111348736  431050752 1680297984          0   64303104  182923264
-/+ buffers/cache:  183824384 1927524352
Swap:   1991241728          0 1991241728
----------------------------------------------------------------------

Calkowita przestrzen na dysku
----------------------------------------------------------------------
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1       18959528   2569420  15438916  15% /
udev             1023684         4   1023680   1% /dev
tmpfs             412376       788    411588   1% /run
none                5120         0      5120   0% /run/lock
none             1030932        88   1030844   1% /run/shm
Temporary      668669948 121460040 547209908  19% /media/sf_Temporary
/dev/sdb1        7819328    499664   7319664   7% /media/USB DISK
----------------------------------------------------------------------

Przestrzen katalogu domowego uzytkownika:
31M    /home/xubuntu

*************************************************************************************************************************************

Ogolne wymagania:
a) mechanizm generujący informacje o systemie ma być zapisany za pomocą funkcji o nazwie system_info()
b) proszę skorzystać ze zmiennych środowiskowych do uzyskania informacji o elementach systemu
c) jeśli skrypt zostanie uruchomiony z prawami root'a (np. przez znaną komendę sudo) - powinien w sekcji "Przestrzen katalogu domowego uzytkownika" wyświetlić "Przestrzeń katalogów domowych wszystkich użytkowników". Do wyświetlenia informacji o przestrzeni należy skorzystać z komendy du -sh [nazwa_katalogu]

Podpowiedź:
Należy skorzystać z właściwości, że użytkownik root posiada identyfikator użytkownika o wartości 0. Aby pobrać identyfikator należy skorzystać z komendy id -u. Dla porządku najlepiej zapisać wynik tej komendy w zmiennej,np. o nazwie userid - przyda się później w skrypcie. Katalogi domowe użytkowników znajdują sie w lokalizacji /home/

d) za każdym razem skrypt powinien sprawdzać czy istnieje plik o nazwie zdefiniowanej w zmiennej $system_info_file. Jeśli plik istnieje - to powinien najpierw zostać usunięty. Każdorazowo na ekranie ma wyświetlić się informacja o aktualnie wykonywanej czynności,np.

Usuniecie istniejacego pliku $system_info_file
Tworzenie pliku $system_info_file
Zapisano informacje o systemie

e) po wykonaniu wszystkich czynności skrypt ma odczekać liczbę sekund zdefiniowaną w zmiennej $delay_time i kontynuować działanie

2. Opcja "Wyswietl zapisane informacje"

Wyświetla na ekranie informacje zapisane w pliku o nazwie określonej zmienną $system_info_file - po odczytaniu danych z pliku system czeka na naciśnięcie dowolnego przycisku informując o tym użytkownika. Jeśli plik nie istnieje - wyświetla odpowiedni komunikat i czeka czas określony zmienną $delay_time.

Podpowiedź:
Oczekiwanie na naciśniecie dowolnego klawisza można zrealizować za pomocą następującej instrukcji:
read -p "Wcisnij dowolny klawisz aby kontyuowac... " -n1 -s

*************************************************************************************************************************************

Ogólny szkielet skryptu powinien wyglądać w sposób następujący :

#!/bin/bash

[tutaj deklaracja wszelkich zmiennych]
opcja=
userid=$(id -u)
...

[tutaj deklaracja funkcji]
function system_info()
{
    echo "*** Informacje o systemie ***"
    ...
}

[tutaj główna pętla skryptu]

until [ "$opcja" -eq "0" ]; do
...
    case "$opcja" in
        "1") ... ;;
        ...
    esac
done

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+3 głosów
2 odpowiedzi 688 wizyt
pytanie zadane 14 września 2016 w Nasze projekty przez obl Maniak (51,280 p.)
0 głosów
1 odpowiedź 425 wizyt
pytanie zadane 19 grudnia 2019 w Systemy operacyjne, programy przez Thominik Nowicjusz (120 p.)
0 głosów
1 odpowiedź 697 wizyt
pytanie zadane 28 listopada 2019 w Systemy operacyjne, programy przez Nortalf Użytkownik (880 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...