Hurriyet

28 Şubat 2014 Cuma

Linux / Unix : Shell Scripting Parametreler ve Değişkenler - Shell Scripting Parameters and Variables

Değişkenler ve parametreler programlama dillerinin datayı gösterme şekilleridir. Değişkenler birer etiket gibidirler. Bilgsayarın memory'sine atanmış bir alanı temsil ederler. Değişkenler aritmetik işlemler de ve string(yazı) işlenmesinde kullanılırlar.

Burada  değişkenin değerini görebilmek için $ ifadesi kullanmamız gerekir. Eğer kullanmazsak direk olduğu gibi kullanılır.

 >variable1=23  
 >echo variable1  
 variable1  
 > echo $variable1  
 23 

Değişkenin çift tırnak işareti içinde kullanılması önemli değildir; ancak tek tırnak içinde kullanılırsa o zaman değişken referansı kaldırılır.

> echo '$variable'  
 $variable 

Bir komutun sonuçlarının bir parametreye yüklenmesi için de aşağıdaki gibi yapılır.

 >a=$(ls -l)  
   
 veya  
   
 >a=`ls -l` 

Çift tırnak konmaz ise çıktı yan yana gösterilir.
echo $a  
 total 2720 drwx--x--x 2 oracle oinstall 256 Aug 13 2013 Mail -rwxr-x--- 1 oracle oinstall 73 Feb 28 15:22 a.sh -rw-r--r-- 1 oracle oinstall 605169 Feb 21 11:29 abc.html -rwxrwxrwx 1 oracle oinstall 2466 Feb 28 16:15 abc.log -rw-r--r-- 1 oracle oinstall 3116 Feb 25 2013 adstats.sql -rw-r--r-- 1 oracle oinstall 705299 Feb 05 09:31 awrrpt.html drwxr-xr-x 4 oracle oinstall 4096 Feb 28 09:27 control_scripts -rw-r--r-- 1 oracle oinstall 40224 Feb 14 2013 core drwxr-xr-x 3 oracle oinstall 256 Jan 08 2013 oradiag_oracle -rw-r--r-- 1 oracle oinstall 304 Jan 08 2013 profile.11g.db -rw-r--r-- 1 oracle oinstall 3200 May 03 2013 smit.log -rw-r--r-- 1 oracle oinstall 1357 Jan 09 2013 smit.script -rw-r--r-- 1 oracle oinstall 1756 Jan 09 2013 smit.transaction -rw------- 1 oracle oinstall 183 Aug 16 2013 tdpoerror.log 

Boşlukların korunması için çift tırnak kullanırız.
>echo "$a"  
 total 2720  
 drwx--x--x  2 oracle  oinstall    256 Aug 13 2013 Mail  
 -rwxr-x---  1 oracle  oinstall     73 Feb 28 15:22 a.sh  
 -rw-r--r--  1 oracle  oinstall   605169 Feb 21 11:29 abc.html  
 -rwxrwxrwx  1 oracle  oinstall    2466 Feb 28 16:15 abc.log  
 -rw-r--r--  1 oracle  oinstall    3116 Feb 25 2013 adstats.sql  
 -rw-r--r--  1 oracle  oinstall   705299 Feb 05 09:31 awrrpt.html  
 drwxr-xr-x  4 oracle  oinstall    4096 Feb 28 09:27 control_scripts  
 -rw-r--r--  1 oracle  oinstall   40224 Feb 14 2013 core  
 drwxr-xr-x  3 oracle  oinstall    256 Jan 08 2013 oradiag_oracle  
 -rw-r--r--  1 oracle  oinstall    304 Jan 08 2013 profile.11g.db  
 -rw-r--r--  1 oracle  oinstall    3200 May 03 2013 smit.log  
 -rw-r--r--  1 oracle  oinstall    1357 Jan 09 2013 smit.script  
 -rw-r--r--  1 oracle  oinstall    1756 Jan 09 2013 smit.transaction  
 -rw-------  1 oracle  oinstall    183 Aug 16 2013 tdpoerror.log  

Değişken Tipleri:

Shell script'lerinde değişkenlerin tipleri bulunmamaktadır. Bu değişkenler özetle karakter string'leridir. Sadece duruma göre bu parametreler üzerinde aritmetik operasyonlar yapılabilmektedir.

 #!/bin/bash  
 a=100        #integer  
 let "a += 1"  
 echo "a = $a " # a = 101  

Null değişkenlerin tanımlanması aşağıdaki gibi olabilir. Sonrasında bununla ilgili işlem yapabiliriz.

 a=''           # .veya a="" ... veya a=  
 echo "a = $a"      # a =  
 let "a += 1"       # Null değişkenler üzerine aritmetik operasyonlar yapılabilmektedir.  
 echo "a = $a"      # a = 1  
 echo  

Bir değişken oluşturulması programın herhangi bir aşamasında aşağıdaki şekildeki gibi olabilir; ancak bu kodun okunulabilirliğini bozar.

 echo "a = $a"      # a =  
 let "a += 1"         
 echo "a = $a"      # a = 1  
 echo


Özel Değişkenler:

Script içerisinde scriptin adını değişkenlerini ve bulunduğu klasörü gösteren parametre ifadeleri bulunur. Aşağıda bununla ilgili bir örnek görebiliriz.

 #!/bin/bash  
   
 MINPARAMS=10  
   
 echo  
   
 echo "Scriptimizin bulunduğu klasör adıyla birlikte \"$0\"."  
   
 echo " Scriptimizin adı \"`basename $0`\"."  
   
   
 echo  
   
 if [ -n "$1" ]         
 then  
  echo "Parametre #1 is $1" # diyez işaretinden kaçmak için tırnak işaretleri kullanılır.  
 fi   
   
 if [ -n "$2" ]  
 then  
  echo "Parametre #2 is $2"  
 fi   
   
 if [ -n "$3" ]  
 then  
  echo "Parametre #3 is $3"  
 fi   
   
 # ...  
   
   
 if [ -n "${10}" ] # 9. parametreden sonrakiler {} işaretleriyle belirtilmelidirler..  
 then  
  echo "Parametre #10 is ${10}"  
 fi   
   
 echo "-----------------------------------"  
 echo "Bütün parametreler sırasıyla: "$*""  
   
 if [ $# -lt "$MINPARAMS" ]  
 then  
  echo  
  echo "Bu script'e en az $MINPARAM kadar argüman gerekmektedir."  
 fi   
   
 echo  
   
 exit 0  

Bu örneğimizde  $# ifadesiyle parametre sayısını,  $* ile bütün parametrelerimizi, $0 ile script'imizin adını, $1 $2 $3 ...${10} değişkenleriyle de script'imize parametre olarak eklediğimiz değerleri görebiliriz. 9. parametreden sonrasını {} işaretleri arasına almalıyız.





Hiç yorum yok:

Yorum Gönder