-
-
Save seddi/755005 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
alani_goster() { | |
! [ $# -eq 1 ] && echo "simdilik alan adi tek olamali :) " && exit 1 | |
alan=$1 | |
ifs_save="$IFS" | |
case "$alan" in | |
"user") | |
while read line; do | |
IFS=":" | |
set $line | |
IFS="$ifs_save" | |
echo "$alan ==>> $1" | |
done </etc/passwd | |
;; | |
"group") | |
while read line; do | |
IFS=":" | |
set $line | |
IFS="$ifs_save" | |
echo "$alan ==>> $5" | |
done </etc/passwd | |
;; | |
"passwd") | |
while read line; do | |
IFS=":" | |
set $line | |
IFS="$ifs_save" | |
echo "$alan ==>> $2" | |
done </etc/passwd | |
;; | |
"kabuk") | |
while read line; do | |
IFS=":" | |
set $line | |
IFS="$ifs_save" | |
echo "$alan ==>> $7" | |
done </etc/passwd | |
;; | |
*) | |
echo "kullanim : ./file_name <alan_adi> " | |
echo "alan_adi =>> [ user ], [ passwd ], [ group ], [ kabuk ] " | |
echo "ornek kullanim : ./secilen_alani_goster.sh user " | |
exit 2 ;; | |
esac | |
} | |
alani_goster $1 |
Şimdi bende bişey söylemek istiyorum Don't repeat yourself
durumu kodun yazılısındaki kod tekrarımı yoksa işlem sırasındaki kod tekrarı mı?
Yani şunu söylemek istiyorum @gökhan
senin yazdıgın kodda hangi satırın hangi sutununu bastıracagımız kararına her defasında bakıyoruz ancak @sedat
' ın yazdıgı kodda tamam fazla yazımlar var ama çalışma açısından bakarsan satırdaki sütünu bulup ondan sonra sadece o sütün için işlem yapıyor o yüzden Don't repeat yourself
durumunu daha iyi anlamalıyız bence, kendi açımdan söylüyorum bunu çünkü bende kavrayamadım bu durumu..
En başta bu kadar düzensiz yazmasak,
daha güzel olur okunmuyor :-(
Şimdi gel gelelim, bizim kod kısaltma hikayesine;
örneğin senin yavaş çalışır dediğin benim kodda, kişi dediki
"Efendim ben hem user hem de grubları yanyana görmek istiyorum."
dediğinde, caselerde bir işler döndürdükten sonra; sende oldu mu 2 while döngüsü ?
Demek ki benim dediğim kodda az bir hız zahiyatı olmasına rağmen,denetim kolaylığı
oluyor.
Ve diğer koda göre 2 kat daha hızlı çalışıyor.
soledim ya iste ´https://gist.github.com/748928 ´ burada zaten bu dedıgın kod var fakat hocanın duzelt demesi uzerine duzelttim @gdemir
Amaç tek hedefe yönelikse, tabiki bu kod doğru birşey demiyorum, ama;
değilse bu dediğim yolda gidilmeli bence.
Ayrıca bunlar clone edilebiliyor.gistpaste'de sorun var ama manualde olur.
git clone git://gist.github.com/755005.git
ayrı ayrı gistlerde oldugundan, hocanın yorumunu göremediğimden söylüyorum.
@gokhan farkındamısın ne kadar takıp edıyorsun bılmıyorum ama oncekı gıstımde https://gist.github.com/748928 zaten ole yazmısım fakat onerdıgın cozumdekı yanlısı sen farketmemıssın!! onerdıgın cozumu zaten yaptım fakat degıstırme nedenım whıle ıcıne koydugun case ıfadelerınde dongu sırasında sureklı bır kontrol cabası ıcındesın yanı esas tekrardan kastın gorunus ıse tmm tekrar var ama dedgın cozumde ıse kod calısırken aynı seylerı bos yere tekrar edıyor sureklı aynı kontrolu yapıyor bence daha dıkkatlı olmalısın bu konuda ;)