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) }'Şimdi ise bütün kodumu scriptin içerisine taşıyorum. Ve parametrik hale getiriyorum ve çalıştırıyorum.
cemyucel
-bash-3.00$ cat parse_by_lenght.shGördüğünüz gibi elde var sıfır. Çözüm ise şu şekilde.
#############################
#!/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$
-bash-3.00$ cat parse_by_lenght.shYani altfonksiyonlar çalıştırılırken beklemediğiniz şekilde bir parametre sıkıntısı çekerseniz '' içerisine alarak deneyebilirsiniz.
#############################
#!/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$
Görüşmek üzere
0 yorum:
Yorum Gönder