faja Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 witam, mam napisac 2 skrypty w bashu: 1. wyswietla posortowanych uzytkownikow z /etc/passwd wraz z UID i GID oraz z nazwa grupy do ktorej nalezy pobranej z /etc/group 2. wysiwtlajacynazwe powloki wystepujacej w /etc/passwd i wyswietlajacy ilu uzytkownikom ta powloka jest przypisana prosze o jakies podpowiedzi Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
exbros Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 Czy to forum nazywa sie odrob_za_mnie_prace_domowa.pl ??? Ludzie, miejcie litosc... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Luty 29, 2008 Autor Zgłoszenie Share Napisano Luty 29, 2008 okej okej;] ..spokojnie nie chce by nikt za mnie tego pisal ..potrzebuje malych podpowiedzi, moze tak .. cat /etc/passwd | cut -f 1 -d : | sort wynikiem beda nazwy uzytkownikow, da sie utworzyc TABLICE z tymi nazwami, tak by kazdy element tablicy to byl uzytkownik? ..albo jak wyswietlic tylko 10 wiersz? ..bo pierwszy wiem;] cat /etc/passwd | cut -f 1 -d : | sort | head -1 a jak kazdy z osobna?? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 A musi być czysty bash? Nie możesz skorzystać z awk, sed lub innego dostarczanego z systemem narzędzia? [EDIT]Tak byłoby prościej A odpowiadając wprost na Twoje pytanie: tak, można zrobić tablice w bash'u, ale tylko jednowymiarowe. Sądzę, że prościej jest tu użyć kombinacji poleceń head, tail oraz ew. wc żeby zliczyć linie i widzieć jakie parametry przekazać do 2 pierwszych poleceń Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Luty 29, 2008 Autor Zgłoszenie Share Napisano Luty 29, 2008 moze byc awk lub inne takie tam;) ..ale wpierw chcialem to zrobic samym bashem co do tablic to wiem ze mozna tworzyc:) ..ale nie wiem jak zrobic zeby za pomoca polecenie (lub innego) cat /etc/passwd | cut -f 1 -d : ktore wyswietla nazwy uzytkowinkow, wpisac do tablicy do kolejnych jej elementow kolejne nazwy uzytkownikow, bo uzytkownicy_tablica=`cat /etc/passwd | cut -f 1 -d :` utworzy pojedyncza zmienna;/ dlatego kombinuje zeby zrobic petelke i wpisywac pokolei sobie uzytkownikow (czyli pokolei wszystkie linie) ale do tego musze wiedziec jak wyswietlic pojedyncze linie wiec : jak headem wyswietlic sama druga linie? (albo cat'em albo less'em albo czymkolwiek innym;]) dzieki za pomoc:) [EDIT] dobra dokopalem sie do takiego czegos cat /etc/paswd | cut -f1 -d : | while read linia do echo $linia # i tu sie ladnie wyswietlaja pokolei done echo $linia # poza petla zmienna linia jest pusta;/ ladnie sie zapisuje do zmiennej linia, ale poza petla zmienna ta jest pust;/ why?, jak zrobic by tak nie bylo?;] tedy wsrodku petli moglbym sobie zrobic zapis do tablicy i bylo by git;] tablica=$linia i=$((i+1) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 Chcesz 10. linię? Każdy "łeb" ma swój "ogonek" head -10 plik | tail -1 Dalej kombinuj sam [EDIT]A np. ostatnia linia: cat plik | head -`wc -l plik` | tail -1 Przy wc opcja jest -l (L jak Lucjan), przy tail to cyfra. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Luty 29, 2008 Autor Zgłoszenie Share Napisano Luty 29, 2008 dzieki wielkie:) heh niezly myk z tym head | tail ;] sproboje cos wykabinowac ..jak cos to bede jeszcze pytal Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
exbros Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 Wiem, ze sie uparles na basha ale to zadanie jak dla mnie to 100% zadanie pod perla... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Luty 29, 2008 Autor Zgłoszenie Share Napisano Luty 29, 2008 nie znam perla nic a nic;/ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Luty 29, 2008 Zgłoszenie Share Napisano Luty 29, 2008 nie znam perla nic a nic;/Może czas poznać, to potęga. Albo python Na poczatek dla poznania tematu polecam: 1. Perl http://pl.wikibooks.org/wiki/Perl 2.Python http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie Naprawdę przyjemna lektura Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Luty 29, 2008 Autor Zgłoszenie Share Napisano Luty 29, 2008 dzieki;) w wolnej chwili na pewno zajze a to moje wypociny (troszke z pomoca innego forum:) : #!/bin/bash #########user + group cat /etc/passwd | sort | while read linepasswd do user=$(echo $linepasswd | cut -f 1 -d : ) uid=$(echo $linepasswd | cut -f 3 -d : ) gid=$(echo $linepasswd | cut -f 4 -d : ) group=$( cat /etc/group | grep :$gid: | cut -f 1 -d : ) echo "USER = $user ::: UID = $uid ::: GID = $gid ::: GROUP = $group" done ######### powloki cat /etc/passwd | sort | while read linepasswd do user=$(echo $linepasswd | cut -f 1 -d : ) shell=$(echo $linepasswd | cut -f 7 -d : ) if [ "$shell" == "" ] then echo "" echo "User = $user nie ma przypisanej zadnej powloki" else ile=$( cat /etc/passwd | grep $shell | wc -l ) echo "" echo "User = $user uzywa powloki = $shell" echo "tej powloki uzywa jeszcze : $ile innych uzytkownikow" fi done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Marzec 1, 2008 Autor Zgłoszenie Share Napisano Marzec 1, 2008 ..a takie jeszcze zadanko, mamy tablice tablica=( a a b a c a c b ), sklada sie ona z trzech rodzajow elementow, jak dowiedziec sie ile jest roznych rodzajow elementow i ile jest elementow kazdego rodzaju, czyli miej wiecej chce otrzymac cos takiego (biorac ta tablice z przykladu): tablica o nazwie "tablica" zawiera 3 rodzaje elementow: a : wystepuje 4 razy b : wystepuje 2 razy c : wystepuje 2 razy Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
jjj Napisano Marzec 1, 2008 Zgłoszenie Share Napisano Marzec 1, 2008 A próbowałeś poczytać? man bash Wszystko tam jest napisane. W szczególności zwróć uwagę na obliczenia arytmetyczne pod bash-em. Ewentualnie inna metoda: man tr man sort man uniq Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
faja Napisano Marzec 3, 2008 Autor Zgłoszenie Share Napisano Marzec 3, 2008 yeah..poradzilem sobie;] ..dzieki wszystkim za pomoc #!/bin/bash ile=`cat /etc/passwd | cut -f7 -d : | sort | uniq | wc -l` i=1 while [ $i -le $ile ] do shell=`cat /etc/passwd | cut -f7 -d : | sort | uniq | head -$i | tail -1` if [ "$shell" != "" ] then ile_shell=`cat /etc/passwd | grep $shell | wc -l` echo "Powloka: $shell jest uzywana przez $ile_shell uzytkownikow" else ile_shell=`cat /etc/passwd | cut -f7 -d : | grep -v "/" | wc -l` echo "$ile_shell uzytkownikow nie ma przypisanej powloki" fi i=$((i+1)) done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morsik Napisano Marzec 3, 2008 Zgłoszenie Share Napisano Marzec 3, 2008 Skoro jesteśmy przy skryptach, to mam taki problem (mógłbym poszukać ale nawet nie wiem czego). Mam plik information.txt i w nim jest coś takiego: package_name=binutils package_ver=2.17 package_desc=opis Chodzi o to żeby wyciągnąć wartości z pliku i żebym miał np. $pkg_name o wartości binutils Próbowałem już tym cut ale on mi dzielił znaki = i nawet jak było w nowej lini to on mi wypisywał to, i wychodziło binutils package_ver 2.17 package_desc opis Jeśli zrozumieliście (mam często problem z tłumaczeniem czegoś komuś ) to poddajcie mi jakieś rozwiązanie. Z góry dzięki Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się