-
-
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 |
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.
Şimdi bende bişey söylemek istiyorum
Don't repeat yourselfdurumu kodun yazılısındaki kod tekrarımı yoksa işlem sırasındaki kod tekrarı mı?Yani şunu söylemek istiyorum
@gökhansenin 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üzdenDon't repeat yourselfdurumunu daha iyi anlamalıyız bence, kendi açımdan söylüyorum bunu çünkü bende kavrayamadım bu durumu..