Temat
Problem Ze Skryptem Pod Linuksa
84.40.151.* napisał:
Mam do zrobianie skrypt,wkleje moze tresc zdania"Napisać skrypt o nazwie „skrypt_05.sh”. Skrypt ma pobierać jeden parametr,
będący nazwą interpretera powłoki (np. „bash”), należy sprawdzać, czy podano parametr i czy
istnieje interpreter powłoki o takiej nazwie. Dla zadanego poprzez parametr interpretera, skrypt
ma wyświetlać dla ilu użytkowników, ten interpreter jest interpreterem domyślnym. Wyświetlona
lista ma zostać posortowana według ilości użytkowników, od liczby największej, do
najmniejszej."
no i fajnie,napisalem skrypt,tylko problem ze nie do konca dziala tak jak powinien ,wyglada tak
"#!/bin/bash
if [ $# -ne "1" ]; then
echo "Niewlasciwa liczba parametrow!!";
echo "Sposob uzycia `basename $0`: [iterpreter]";
exit;
fi
if [ -e /bin/"$1" ]; then
echo "Jest!";
else
echo "Nie ma takiego iterpretera";
exit;
fi
iterpreter=$1;
awk -F: ' $7~/\/'$iterpreter'$/ { licz+=1; }
END {print "Razem "licz; }' /etc/passwd > temp.tmp
awk -F: ' $7~/\/'$iterpreter'$/ { print $1; } ' /etc/passwd | sort -k 1 >> temp.tmp
cat temp.tmp
rm -f temp.tmp
Dla was poprawienie tego to pewnie kilka minut a mi bardzo pomoze,a gory dziekuje
217.153.29.* napisał:
w tej linijce dodajawk -v licz=0 -F: ' $7~/\/'$iterpreter'$/ { licz+=1; } END {print "Razem "licz; }' /etc/passwd > temp.tmp
o ile o to chodzilo ;D
62.87.142.* napisał:
CODE
#!/bin/bash
if [ $# -ne "1" ]; then
echo "Niewlasciwa liczba parametrow!!";
echo "Sposob uzycia `basename $0`: [interpreter]";
exit;
fi
if [ ! -e /bin/"$1" ]; then
echo "Nie ma takiego interpretera";
exit;
fi
shell=$1;
echo "Razem:"; cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | wc -l
echo "Uzytkownicy:"; cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | sort
W zadaniu nie ma nic o tworzeniu plików, więc można to uprościć. Jeśli trzeba do plików zapisać to wystarczy przekierować wyjście poprzez operator ">>". Nie rozumiem zaś ostatniego zdania tego zadania. W tym przypadku można posortować jedynie alfabetycznie (chyba że coś przekręciłeś w treści polecenia).
217.153.29.* napisał:
hmm, przeczytalem jeszcze raz polecenie i tego ostatniego zdania takze nie rozumiem.nom teraz skrypt ma rece i nogi bigfan pozwolilem sobie go jeszcze usprawnic
CODE
#!/bin/bash
if [ $# -ne "1" ]; then
echo "Niewlasciwa liczba parametrow!!";
echo "Sposob uzycia `basename $0`: [interpreter]";
exit;
fi
if [ ! -e /bin/"$1" ]; then
echo "Nie ma takiego interpretera";
exit;
fi
shell=$1;
ilosc=`cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | wc -l`;
if [ $ilosc = "0" ]; then
echo "Nikt nie uzywa takiej powloki";
else
echo "Razem: $ilosc";
echo "Uzytkownicy:"; cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | sort
fi
if [ $# -ne "1" ]; then
echo "Niewlasciwa liczba parametrow!!";
echo "Sposob uzycia `basename $0`: [interpreter]";
exit;
fi
if [ ! -e /bin/"$1" ]; then
echo "Nie ma takiego interpretera";
exit;
fi
shell=$1;
ilosc=`cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | wc -l`;
if [ $ilosc = "0" ]; then
echo "Nikt nie uzywa takiej powloki";
else
echo "Razem: $ilosc";
echo "Uzytkownicy:"; cat /etc/passwd | grep "$shell" | awk -F: '{print $1;}' | sort
fi
80.53.147.* napisał:
Bez sensu. A jeśli jest /usr/local/bin/bash?Polecam plik /etc/shells ;]
Poza tym po co wyskakiwać z awk które nie zawsze jest dostępne? Istnieje coś takiego jak 'cut' - w tym wypadku 'cut -f1 -d":"' ;]
62.87.142.* napisał:
Słuszna uwaga z /etc/shells i cut, choć mało jest systemów bez awk. Całość będzie bardziej uniwersalna. Upał (przynajmniej ten wrocławski) daje się we znaki217.153.29.* napisał:
ha, nigdy wczesniej nie widzialem tego pliku /etc/shellsmam w nim sh, bash, tcsh, csh, esh, ksh, zsh, sash, z tym ze: esh, ksh, zsh nie mam w ogole na kompie. wiec jednak u mnie lepiej sprawdziloby sie sprawdzanie w /bin + ew. /usr/local/bin
my fault ?
80.53.147.* napisał:
to już lepiej find / -name "plik" ;]62.87.147.* napisał:
W przypadku tego zadania w zupełności wystarczy zawartość /etc/shells. Uruchamianie find na / w przypadku dużej ilości danych może nieco negatywnie wpłynąć na szybkość działania skryptu. Poza tym myślę, że zadanie miało przede wszystkim nauczyć wykorzystania skryptów shellowych i paru dodatkowych poleceń w celu wyfiltrowania konkretnych informacji a nie wyszukiwania drobnych niuansów typu położenie plików wykonywalnych itp.Podobne tematy
Problem z RedHat'em
PLD - problem
Problem przy boocie :P !!
Avifile, mplayer i problemy !!
Mam problem, co robic?
Problem z userami :-)
2 problemy - Odswiezanie monitora oraz Polskie znaki ??
problem z kompilacja
shell... wget... i problemy poczatkujacego usera :(
problem z mplayer'em
Montowanie - problem
Problem z samba :(
Novell vs Linux i inne problemy początkującego
neo+ na USB i linux - problem.
problem z kompilacja jadra debiana
PLD - problem
Problem przy boocie :P !!
Avifile, mplayer i problemy !!
Mam problem, co robic?
Problem z userami :-)
2 problemy - Odswiezanie monitora oraz Polskie znaki ??
problem z kompilacja
shell... wget... i problemy poczatkujacego usera :(
problem z mplayer'em
Montowanie - problem
Problem z samba :(
Novell vs Linux i inne problemy początkującego
neo+ na USB i linux - problem.
problem z kompilacja jadra debiana
Działy
Copyright © 2002-2024 | Prywatność | Load: 2.00 | SQL: 1 | Uptime: 59 days, 2:35 h:m |
Wszelkie uwagi prosimy zgłaszać pod adresem eddy@heh.pl