programlama sorunu lütfen yardim

kingkong
04-02-2010, 19:48   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

programlama sorunu


Merhaba arkadaslar

Linux kullanmaya basladim ve Hocam bir ödev verdi ama birtürlü yapamadim yardimci olabilecek arkadaslar varsa lütfen yardimci olsunlar yoksa sinifta kalicam :(

Bu programi

#! /bin/bash

# Name

echo –n ´´Username:´´

read name

# Home

echo –n ´´Homeverzeichnis: ´´

read home

# Gruppe

echo –n ´´Gruppe:´´`

read gruppe

# Kommentar

echo –n ´´Kommentar:´´`

read kommentar

useradd –m –d $home –g $gruppe –c ´´$kommentar´´ $name

root/bin isimli klasöre neuuser.sh seklinde kaydedip calistiracagiz.Bunu yapmayi basardim ama sonra bu programi bos sekilde girdi yapinca hata verecek sekilde gelistirmemizi istedi.Mesela username yazinca hicbirsey yazmadan enter'a basarsak hata vericek.Buda yetmezmis gibi grup kismina girdi yapilinca böyle bir girdi varmi diye kontrol edicek varsa users grubuna atacak girdiyi ,yoksa normal girdi olacak.Günlerdir ugrasiyorum ama sonuc alamadim.Yardimci olabilecek arkadaslar Lütfen yardimci olsun :(

kingkong
04-02-2010, 21:12   |  #2  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Cok tesekkür ederim bircok Almanca ve Türkce siteyi arastirdim ama yapmayi basaramadim.if ve case kullanimlarinada baktim ama bi yarari olmadi malesef :(.yinede Tavsiyen icin tesekkür ederim.Mantik olarak aslinda cok zor olmamasi lazim ama bir türlü yapamadim.Eger yapabiliyorsan bana yardimci olabilirmisin?

kingkong
05-02-2010, 16:11   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

TBCMagic cok saol dostum ,inanki caresiz bir durumdaydim.Verdigin kod birinci kisim icin gecerli yani bos girdiyi engelliyor.Cok tesekkür ederim.Adduser arastirdigim kadariyla yeni kullanici olusturuyor.Bir sey daha rica edebilirmiyim acaba bu ayni grup varsa girdiyi users grubuna nasil atacagimi söylermisin?Ben bunu söyle düsündüm. if  [ -z $gruppe ]; Then set $gruppe="users" bu sekilde olurmu?

kingkong
05-02-2010, 19:03   |  #4  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Cok tesekkür ederim ama biraz degisik olmus sanirim,eger verilen gruppe ismi daha önceden verilmisse o zaman users grubuna atmasi lazim .Sanirim ben yanlis acikladim bir grup'un daha önceden var olup olmadigini nasil kontrol edebilirim.Eger daha önceden böyle bir grup var ise o zaman users grubuna atmam lazim.Benim söyledigim sekilde olmazmi . if  [ -z $gruppe ]; Then set $gruppe="users".Benmi biryerde hata yaptim.Cok tesekkür ederim .Allah razi olsun.

kingkong
05-02-2010, 19:51   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

 

 
 
Benim yazdigim programin en son hali bu.calistirdigimda isim,grupp,home,kommentar kisimlarina deger girdikten sonra = invalid Homedirectory diye hata aliyorum ve bu gruppe daha önceden varsa kismindan emin degilim calisiyormu onu nasil kontrol edebilirim?

Son Düzenleme: kingkong ~ 05 Şubat 2010 19:58
kingkong
05-02-2010, 19:56   |  #6  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

#!/bin/bash
#echo "Bitte Usernamen eingeben"
while [[ $nam1 != weiter ]]
do
           echo "Bitte Username eingeben "
           read name
                if [[ $name == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $name
                          nam1=weiter
                fi
done
while [[ $nam2 != weiter ]]
do
           echo "Bitte Homeverzeichnis eingeben"
           read home
                if [[ $home == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $home
                          nam2=weiter
                fi
done
while [[ $nam3 != weiter ]]
do
           echo "Bitte Gruppe eingeben"
           read gruppe
                if [[ $gruppe == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
elif [ -z $gruppe ]; then
echo "Die gruppe existiert schon"
set $gruppe = users
nam3=weiter
                         else
#                         echo $gruppe
                          nam3=weiter
                fi
done
while [[ $nam4 != weiter ]]
do
           echo "Bitte Kommentar eingeben"
           read kommentar
                if [[ $kommentar == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $kommentar
                          nam4=weiter
                fi
done
useradd -m -d $home -g $gruppe -c "$kommentar" $name

kingkong
05-02-2010, 20:28   |  #7  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Deidigin sekilde degistirdim simdide unknown gruppe diye hata veriyor ,simdi ilk kisimda invalid homedirectory diye hata vermiyor .Cok tesekkür ederim bu hatayi nasil düzeltebilirim

kingkong
05-02-2010, 21:04   |  #8  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Senden Allah razi olsun calisiyor ,bunu benim programa nasil eklemem lazim son bir iyilik yaparsan.Cok saol valla seninde cok zamanini aldim.Kusura bakma.Hakkini helal et

kingkong
05-02-2010, 21:48   |  #9  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

#!/bin/bash
#echo "Bitte Usernamen eingeben"
while [[ $nam1 != weiter ]]
do
           echo "Bitte Username eingeben "
           read name
                if [[ $name == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $name
                          nam1=weiter
                fi
done
while [[ $nam2 != weiter ]]
do
           echo "Bitte Homeverzeichnis eingeben"
           read home
                if [[ $home == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $home
                          nam2=weiter
                fi
done
while [[ $nam3 != weiter ]]
do
           echo "Bitte Gruppe eingeben"
           read gruppe
                if [[ $gruppe == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"

                         else
groupadd $Gruppe 2>/dev/null

error=$?

if [ "$error" -eq 0 ]; then
echo "Gruppe erfolgreich angelegt"
fi

if [ "$error" -eq 9 ]; then
echo "Diese Gruppe ist vorhanden"
Gruppe=users
fi

#                         echo $gruppe
                          nam3=weiter
                fi
done
while [[ $nam4 != weiter ]]
do
           echo "Bitte Kommentar eingeben"
           read kommentar
                if [[ $kommentar == "" ]]
                         then
                          echo "Fehler Eingabe nicht gültig!!"
                         else
#                         echo $kommentar
                          nam4=weiter
                fi
done
useradd -m -d /home/$home -g $gruppe -c "$kommentar" $name

son hali o zaman bu sekilde oluyor(else nin altina yerlestirmem mantiken dogru olmasi lazim diye düsünüyorum cünkü ilk kisimda bos girdi kontrol ediliyordu) evet cok yoruldum günlerdir ugrasiyorum.Pazar gününe kadar vermem gerekiyor.
Senin sayende pek bir sorunum kalmadi.
Simdi tek sorun  useradd: Unknown group `g'. Grubu kaydedecek yer bulamiyor tahminimce.
Cok sagol ,sen olmasan hayatta bu hale getiremezdim.

Son Düzenleme: kingkong ~ 05 Şubat 2010 22:17
kingkong
06-02-2010, 10:35   |  #10  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

Dostum cok saol.Allah senden razi olsun.Funktion kullanmak hic aklima gelmemisti.Program su anda mükemmel sekilde calisiyor.Sana tesekkür icin kelimeler bulamiyorum.Cok sagol.Kendine iyi bak.Benim senin icin yapabilecegim birsey olursa ( Pek sanmiyorum cünkü benden cok daha iyisin bu konularda) lütfen söyle,elimden geleni yaparim.

kingkong
06-02-2010, 13:38   |  #11  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Şub 2010

insallah bi sorunun olmaz ,eger olursada umarim benim yapabilecegim bir sorun olur :)
Tekrar cok tesekkürler.Kendine iyi bak