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