• SDN Forum üyelikleri çok yakında yeniden açılıyor. Siz de bu büyük topluluğun bir parçası olmak için bizi takipte kalın, gelişmeleri kaçırmayın!

Programlama sorunu lütfen yardim

kingkong

Öğrenci
Katılım
4 Şubat 2010
Mesajlar
8
Tepki puanı
0
Puanları
0
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 :(
 
python la yapmak serbest mi, yaparım demiyorum ama o şekilde daha kolay olacağından eminim :)
 
Valla dosya .sh uzantili olursa hicbir sorun olmaz.eger yapabilirsen cok sevinirim.
 
dediğim gibi ben yapabileceğimi söylemedim, sadece öyle daha kolay olur dedim. ayrıca linux da uzantının önemi yoktur (gerçi windowsda da yoktur ama neyse :)). python bilen birine, daha doğrusu python ile sistem çağrılarını kullanabilen birine yaptırabilirsin. ben sadece fikir verdim. kolay gelsin...
 
saol dostum ama bunu yaptirabilecek birini zaten tanisam forumda yazmazdim
 
bende onu diyorum, belki vardır forumda yapabilecek biri...
 
Kod:
#! /bin/bash

read_until()
{
  read console_param
  if [ "$console_param" = "" ];then
     echo "Parametreyi girmediniz .Parametreyi giriniz "
     read_until $1
    else 
    eval "$1=$console_param";
  fi
}
user_add()
{
user_name=$1
home_dir=$2
group_name=$3
about_user=$4

echo "Kullanıcı asagidaki bilgiler ile olusturuluyor \n"
echo "Kullanıcı adı:"
echo  $user_name
echo "\nhome dizini :"
echo $home_dir
echo "\ngurubu :"
echo $group_name
echo "\naciklama :"
echo $about_user
echo -n "\nDevam etmek için enter, iptal için CTRL+C ye basın"
read dummy_param
result=`groups $user_name|grep $group_name`
if [ "$result" = "" ];then
   useradd $user_name -g $group_name -m -d $home_dir -c ``$about_user``
else
   echo "kullanıcı bu guruba kayitli"
fi
}

# Name
echo –n ´´Username:´´
read_until name
# Home
echo –n ´´Homeverzeichnis: ´´
read_until home
# Gruppe
echo –n ´´Gruppe:´´
read_until gruppe
# Kommentar
echo –n ´´Kommentar:´´
read_until kommentar

user_add $name $home $gruppe  $kommentar
Bir önerim var size, sadece dersi geçme veya kalmak diye bakmayın olaya , eğer bu işi gerçekten yapmak istiyorsanız. Sanırım yukarıdaki kod işinizi görür
 
Kod:
#! /bin/bash
 
read_until()
{
  read console_param
  if [ "$console_param" = "" ];then
     echo "Parametreyi girmediniz .Parametreyi giriniz "
     read_until $1
    else 
    eval "$1=$console_param";
  fi
}
user_add()
{
user_name=$1
home_dir=$2
group_name=$3
about_user=$4
 
echo "Kullanıcı asagidaki bilgiler ile olusturuluyor \n"
echo "Kullanıcı adı:"
echo  $user_name
echo "\nhome dizini :"
echo $home_dir
echo "\ngurubu :"
echo $group_name
echo "\naciklama :"
echo $about_user
echo -n "\nDevam etmek için enter, iptal için CTRL+C ye basın"
read dummy_param
result=`groups $user_name|grep $group_name`
if [ "$result" = "" ];then
   useradd $user_name -g $group_name -m -d $home_dir -c ``$about_user``
else
   echo "kullanıcı bu guruba kayitli"
fi
}
 
# Name
echo –n ´´Username:´´
read_until name
# Home
echo –n ´´Homeverzeichnis: ´´
read_until home
# Gruppe
echo –n ´´Gruppe:´´
read_until gruppe
# Kommentar
echo –n ´´Kommentar:´´
read_until kommentar
 
user_add $name $home $gruppe  $kommentar
Bir önerim var size, sadece dersi geçme veya kalmak diye bakmayın olaya , eğer bu işi gerçekten yapmak istiyorsanız. Sanırım yukarıdaki kod işinizi görür


cok tesekkür ederim,tavsiyenize uyacagim.Tekrar tesekkürler
 
Üst