Toon posts:

Gebruikers script werkt wel maar ook weer niet.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Vraagje,

Ik heb het volgende scriptje geschreven voor Linux. :

#/bin/bash

echo ""
echo ""
echo ""
echo ""
echo ""
echo "Gebruikers manager"
echo ""
echo ""
echo ""
echo ""
echo -n "wilt u gebruikers toevoegen (j/n)"
echo "om een gebruiker te verwijderen (v)"
echo "om een een lijst van alle gebruikers te zien (l)"
read start

if [ $start = j ] || [ $start = J ]; then
echo "voer hier de gebruikersnaam in"; read gebruikersnaam
echo "voer hier de wachtwoord in voor gebruiker "$gebruikersnaam""

adduser $gebruikersnaam
passwd $gebruikersnaam
echo "voer de nieuwe wachtwoord in"
echo "gebruiker "$gebruikersnaam" aangemaakt";
echo "programma wordt afgesloten"


fi

if [ $start = n ] || [ $start = N ]; then
echo "programma is afgesloten";


fi


if [ $start = v ] || [ $start = V ]; then
echo "voer de gebruikersnaam van de gebruiker in die u wilt verwijderen:"
read gebruikersnaam

userdel $gebruikersnaam
rm -R /home/$gebruikersnaam

echo "gebruiker "$gebruikersnaam" gewist"
echo ""
echo ""


fi

if [ $start = l ] || [ $start = L ]; then
echo "dit zijn alle gebruikers op het systeem";
ls /home

fi


Hiermee kun je gebruikers toevoegen aan linux, maar ze ook weergeven en verwijderen.

Het gekke is dat als je het direct opent dus script aanklikken rechter muistoets en dan run in terminal dan werkt hij wel, behalve als ik hem vraag om alle gebruikers weer te geven.
Dan stopt het scriptje abrubt.

Echter wanneer ik van te voren een terminal venster open en het bestand handmatig open bijv :

$ script/user.sh

dan doet hij het wel zonder problemen :?

Weet iemand wat ik fout doe?

Ik snap er niets van.

Verwijderd

Die ; horen daar niet lijkt me. Het is geen C.

edit:
Het gebruik van if hier kun je trouwens ook beter vervangen voor case:
code:
1
2
3
4
5
6
case $start in
  j) voeg user toe...
  n) exit...
  ..
  ..
esac

[ Voor 65% gewijzigd door Verwijderd op 07-01-2004 12:29 ]


  • SnakeMind
  • Registratie: Juni 2003
  • Laatst online: 17-09-2025

SnakeMind

Silence...

Precies, wat opvalt is dat je erg inconsistent bent met je echo "..."; en echo "..."
Bij je show user commando staat er dus wel een ; tussen de echo en de listing. Hierdoor weet linux gewoon niet wat je bedoeld.

Ook zal je exit niet werken zoals het zou moeten werken, al zal het inderdaad wel stoppen door de ; zoals bij het listen :9

[ Voor 33% gewijzigd door SnakeMind op 07-01-2004 12:19 . Reden: exit functie ]

Still Cripple as Hell


Verwijderd

Topicstarter
Keej, thnx

Ik zit nu nog op mijn werk maar als ik thuiskom zal ik het meteen proberen.

Hartstikke bedankt.