Salı, Kasım 28, 2006

SHELL Programlama

Döngüler
Örnek 1:
rpm -ql snort | while read FILE ; do diger yapılacaklar ; done

Örnek 2:
for i in `rpm -ql snort` ; do diger yapılacaklar ; done

Örnek 3:
x=10
while [ $x -gt 0 ] ; do echo DENEME; echo $x ; x=$(($x-1)) ; done

Örnek 4:
ls -1 | while read DIR; do if [ -d $DIR ]; then du -hs $DIR; fi; done
yada
ls -1 | while read DIR; do [ -d $DIR ] && du -hs $DIR; done

Örnek 5:
for FILE in * ; do if [ `stat $FILE | grep Size | awk '{print $2}'` -eq 0 ]; then ll $FILE; fi; done
yada
ls -1 | while read FILE; do if [ `stat $FILE | grep Size | awk '{print $2}'` -eq 0 ]; then ll $FILE; fi; done


Bilgi Girişi

Örnek 1:
#!/bin/sh
echo -n "1.Giris yapınız->"
read GIRIS
echo $GIRIS

Örnek 2:

read -p "2.Giris yapınız->" GIRIS2
echo $GIRIS2

Faydalı Komutlar
ls -1 | while read MAIL; do grep -ir "ARANAN İFADE" $MAIL && echo $MAIL; done

mail dosyaları içerisinde To: ile başlayan ve BÜYÜK harfle başlayan e-posta adreslerini alır ve alan adına göre sıralar

ls -A1 | while read FILE; do grep -r "^To: [^a-z]" $FILE | sed 's/To: //'; done | sort -t @ -k 2

Hesaplama İşlemi
alias '?=bc -l <<<' ? (546-425)*34
yada
bc -l <<< (546-425)*34 yada echo 6-5 | bc -l Dizin ve Dosyaları Küçük Karaktere Çevirmek

ls -1 | while read F; do awk '{print tolower($F)}'; done
Ad Soyad İfadelerini Ayrıma
sed 's/\(\w*\)\(\W*\)\(\w*\)$/\1;\3/' a.csv > b.csv

Kaynaklar
1.http://tldp.org/LDP/abs/html/