Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1


Członek DUG



Witam,
Taki prosty skrypcik posiadam.
echo -e "1. Dodaj jedno konto uzytkownika" echo -e "2. Dodaj wiele kont uzytkownikow" echo -e "3. Zablokuj konto uzytkownika" echo -e "4. Odblokuj konto uzytkownika" echo -e "5. Generuj nowe haslo dla uzytkownika" echo -ne "Prosze wybrac jeden z tematow. Wyboru dokonuje sie wyborem cyfry [1 do 5]: " read WYBOR
Po dokonaniu wyboru coś się wykonuje.
Jeśli pojawi się błąd to skrypt kończy działanie. Wygląda to tak
if [ $WYBOR -eq "3" ]; then
#echo "3 ---> Blokowanie konta"
echo -en "Podaj nazwe uzytkownika do zablokowania: "
read USER
if [ -z $USER ]; then
echo -e "BLAD: Nie wpisano nazwy uzytkownika!!!"
exit 1
else
cut -f1 -d: /etc/passwd |grep $USER > /dev/null
OUT=$?
if [ $OUT -eq 0 ];then
usermod -L "$USER"
echo -e "Uzytkownik [ .. $USER .. ] zostal zablokowany"
else
echo -e "BLAD: Taki uzytkownik [ .. $USER .. ] nie istnieje"
fi
fichciałbym żeby wyskoczył komunikat i ponowił próbę uzyskania nazwy użytkownika.
Próbowałem tak
if [ -z $USER ]; then
echo -e "BLAD: Nie wpisano nazwy uzytkownika!!!"
echo -en "Podaj nazwe uzytkownika do zablokowania: "
read USER
cut -f1 -d: /etc/passwd |grep $USER > /dev/nullAle jak ktoś w tym nie poda nazwy użytkownika skrypt się wywala bo grep ma pusty parametr :(
Macie na to pomysł ?
Pozdrawiam
Redelk
Offline


Członek DUG






Admin łajza







Po pierwsze: źle formatujesz, else zauważyłęm dopiero po którymś przeczytaniu...
Po drugie: nadużywasz echo -e.
możesz podawanie wsadzieć w pętlę while:
if [ $WYBOR -eq "3" ]; then
#echo "3 ---> Blokowanie konta"
while [ -z $USER ]; do
echo -en "Podaj nazwe uzytkownika do zablokowania: "
read USER
if [ -z $USER ]; then
echo -e "BLAD: Nie wpisano nazwy uzytkownika!!!"
else
cut -f1 -d: /etc/passwd |grep $USER > /dev/null
OUT=$?
if [ $OUT -eq 0 ];then
usermod -L "$USER"
echo -e "Uzytkownik [ .. $USER .. ] zostal zablokowany"
else
echo -e "BLAD: Taki uzytkownik [ .. $USER .. ] nie istnieje"
fi
fi
done
fiPonadto przy "taki użytkownik nie istnieje" pokusiłbym się o dodanie zapytania, czy chcesz podać nazwę ponownie.
Ostatnio edytowany przez azhag (2008-11-06 12:02:23)
Offline


Członek DUG



azhag napisał(-a):
Po pierwsze: źle formatujesz, else zauważyłęm dopiero po którymś przeczytaniu...
Po drugie: nadużywasz echo -e.
możesz podawanie wsadzieć w pętlę while:Kod:
if [ $WYBOR -eq "3" ]; then #echo "3 ---> Blokowanie konta" while [ -z $USER ]; do echo -en "Podaj nazwe uzytkownika do zablokowania: " read USER if [ -z $USER ]; then echo -e "BLAD: Nie wpisano nazwy uzytkownika!!!" else cut -f1 -d: /etc/passwd |grep $USER > /dev/null OUT=$? if [ $OUT -eq 0 ];then usermod -L "$USER" echo -e "Uzytkownik [ .. $USER .. ] zostal zablokowany" else echo -e "BLAD: Taki uzytkownik [ .. $USER .. ] nie istnieje" fi fi done fi
OOO super dzięki.
Nadurzywam echo -e bo będą kolorowane komunikaty, a dzięki opcji -e wyświetlają się kolorki w bash. Tak jest na Ubunciaku :)
Pozdrawiam
Redelek
Offline
Strony: 1