2 Mayıs 2011 Pazartesi

Shell Script Parametrik Program Çağırımı

Merhabalar,

Bir programımız olsun ve biz scriptimiz içerisinde bu programımızı parametrik olarak çalıştırdığımızı varsayalım. Bu senaryoda herşey tamam gibi gözüküyor ama birşeyler çalışmıyor mu? İşte sebebi :)

Örneğimiz string parçalama ile ilgili olsun. Kodum aşağıda
echo mehmetcemyucel | awk '{ print substr($0,7,8) }'
Yani 7. karakterden başla ve 8 karakter uzunluğunda bir parça ver diyorum. Sonucu şu şekilde,
-bash-3.00$ echo mehmetcemyucel | awk '{ print substr($0,7,8) }'
cemyucel
Şimdi ise bütün kodumu scriptin içerisine taşıyorum. Ve parametrik hale getiriyorum ve çalıştırıyorum.
-bash-3.00$ cat parse_by_lenght.sh
#############################
#!/bin/sh
#filename:parse_by_lenght.sh
#############################
echo $1, $2, $3
echo $1 | awk '{ print substr($0,$2,$3) }'-bash-3.00$
-bash-3.00$
-bash-3.00$
-bash-3.00$ ./parse_by_lenght.sh mehmetcemyucel 7 8
mehmetcemyucel, 7, 8
-bash-3.00$
Gördüğünüz gibi elde var sıfır. Çözüm ise şu şekilde.
-bash-3.00$ cat parse_by_lenght.sh
#############################
#!/bin/sh
#filename:parse_by_lenght.sh
#############################
echo $1, $2, $3
echo $1 | awk '{ print substr($0,'$2','$3') }'-bash-3.00$                  
-bash-3.00$
-bash-3.00$ ./parse_by_lenght.sh mehmetcemyucel 7 8
mehmetcemyucel, 7, 8
cemyucel
-bash-3.00$
Yani altfonksiyonlar çalıştırılırken beklemediğiniz şekilde bir parametre sıkıntısı çekerseniz '' içerisine alarak deneyebilirsiniz.

Görüşmek üzere

0 yorum:

Yorum Gönder