Kapalı

Proste bash

1. Wykorzystaj 'date' do wyswietlania różnych komunikatów powitalnych w zależności czy aktualnie jest dzień roboczy czy świąteczny (dla uproszczenia: dzień tygodnia czy weekend).

Uwaga: Porównywanie napisów wyświetlanych przez program 'date' (i inne programy) jest zależne od języka i lokalizacji. Sprawdź możliwość ustawienia zmiennych lokalizacji LC_* (np. LC_ALL=C) i ich wpływ na postać komunikatu. Która/które z nich sterują postacią wyświetlanej daty? Ustawiając tę zmienną w skrypcie na wartość C (lub POSIX), wymuszamy lokalizację kanoniczną, co ułatwia sprawdzanie wartśoci daty, i uniezależnia działanie skryptu od lokalizacji (będzie on poprawnie sprawdzał warunek również np. w Japonii).

2. Ćwiczenia z programem find: napisz skrypt znajdujący programem find wszystkie pliki o zadanym rozszerzeniu lub masce, które były modyfikowane w ciągu ostatnich N dni i tworzący z nich archiwum tar o zadanej nazwie. Mamy tu trzy parametry: maskę nazwy pliku, liczbę N i nazwę archiwum. Parametry są zadawane przez argumenty, to znaczy skrypt zawsze będzie wywołany z trzema parametrami.

3. Zmodyfikuj skrypt napisany w poprzednim punkcie tak, aby miał rozbudowany i wygodny interfejs użytkownika. Po pierwsze, pozycyjne parametry wywołania zamień na opcjonalne z jednoliterowymi słowami kluczowymi (poprzedzonymi znakiem minus), według wzoru:

[url removed, login to view] -n 5 -m '*.c' -a [url removed, login to view]

Każdy z parametrów -n, -m, i -a może wystąpić lub nie, i mogą one być zadane w dowolnej kolejności (ale w parach ze słowem kluczowym). Jest to ogólnie przyjęta konwencja pisania skryptów i programów w systemie Unix.

Następnie dodaj mechanizm pobierania wartości parametru w przypadku, gdyby nie wystąpił jako argument wywołania. Jeśli dany parametr nie wystąpił, a istnieje zmienna środowiskowa zadająca wartość danego parametru (wymyśl dobre nazwy dla tych zmiennych), to będzie użyta wartość tej zmiennej. Jeśli nie ma ani argumentu wywołania ani zmiennej środowiskowej, to skrypt powinien zapytać się użytkownika o wartość danego parametru, i wykorzystać tę wartość. Do zadania pytania użytkownikowi wykorzystaj polecenie echo, a do odczytania odpowiedzi użytkownika polecenia read lub programu line.

Wskazówka: można usprawnić czytanie i analizę (parsing) wektora argumentów z parametrami opcjonalnymi za pomocą programu getopt. Jego użycie jest proste, a daje przenośność i odporność na błędy. Dobry jest przykład w dokumentacji man getopt (na niektórych wersjach Linuksa man nie ma tego przykładu, patrz man getopt na systemie Solaris).

4. Napisz wersję poprzedniego skryptu z interfejsem użytkownika wykorzystującym program zenity. Do wyboru dni można użyć kalendarza, a dodatkowo, po wyszukaniu plików, wyświetlenie ich jako checklisty - podobnie do przykładu:

zenity --list --checklist --column "Buy" --column "Item" TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste

i po zakończeniu przez OK - utworzyć archiwum z wybranych plików o podanej nazwie - tu też można użyć okienka:

zenity --title="Zapisz do archiwum:" --file-selection --save

Beceriler: Linux

Daha fazlasını görün: daty, bash file, bash 0, t sh, po file, linux solaris, dobre, file parsing linux, bash parsing, parsing unix, linux bash date, file selection, parsing bash, mutt bash script, unix ftp bash script, best bash script, bash check content, cgi script bash perl, linux bash ftp client, select value mysql bash, change bash shell, cgi post bash environment dont forget, bash linux ftp

İşveren Hakkında:
( 0 değerlendirme ) Poland

Proje NO: #6546254

5 freelancer bu iş için ortalamada 94zł teklif veriyor

TarasKuzyo

Hello! I have good experience in bash scripting. I can implement those 4 tasks in high quality way in due time.

1 gün içinde 105zł PLN
(9 Değerlendirme)
3.7
chromikmaciej

Hi, my name is Maciek I'm from Poland - Siedlce. Since 2005 I'm Linux and MySQL administrator. I'm network administrator in "DOMTEL" [url removed, login to view] We are network provider, we work on Linux. I work at many Linux Daha fazlası

in 3 gün içinde90zł PLN
(8 Değerlendirme)
3.5
marekbukowy

Nie ma problemu, w ciągu 20+ lat pracy z Linuxem pisałem mnóstwo skryptów - w bashu, awku, perlu, itp. Zakładam tu, że zadanie 1 robimy w wersji uproszczonej - dzień tygodnia/weekend. Inaczej trzeba pościągać i zaszyć Daha fazlası

1 gün içinde 100zł PLN
(2 Değerlendirme)
2.0
przemal

Witam, Chętnie pomogę w odrobieniu pracy domowej ale sugerowałbym ogarnięcie basha i terminala w ogóle, naprawdę warto ;) pozdrawiam, przemal

1 gün içinde 90zł PLN
(1 Değerlendirme)
1.2
jkIT

Witam, Jestem profesjonalnym konsultantem IT z zakresu administracji Linux/UNIX. Na moim profilu znajduje się aktualne CV. Zlecenie mogę wykonać w ciągu dnia w poniedziałek. Pozdrawiam, Jakub

1 gün içinde 85zł PLN
(0 Değerlendirme)
0.0