Değişkenler, program yürütme esnasında değişik türlerdeki değerleri depolamak için kullanılır. Bash komut dosyasında iki tür değişken vardır: genel ve mahalli.
Genel değişkenler sisteminizdeki tüm Bash komut dosyaları tarafınca kullanılabilirken, mahalli değişkenler yalnızca tanımlandıkları komut dosyası (yada kabuk) içinde kullanılabilir.
Genel değişkenler çoğu zaman varsayılan olarak sistemde sağlanır ve çoğunlukla ortam ve yapılandırma değişkenleridir. Öte taraftan, mahalli değişkenler kullanıcı tanımlıdır ve rasgele kullanımlara haizdir.
Mahalli Değişkenleri Ez
Değişken oluşturmak için değişken adınıza bir kıymet atamanız gerekir. Bash yazılmamış bir dildir, bundan dolayı değişkenlerinizi tanımlarken bir veri türü belirtmeniz gerekmez.
var1=Hello
Bash ek olarak tek bir satırda birden oldukca atamaya izin verir:
a=6 b=8 c=9
Öteki birçok programlama dili şeklinde Bash de atama işlecini kullanır = değişkenlere kıymet atamak için. Atama işlecinin her iki tarafında da boşluk olmaması icap ettiğini ihmal etmeyin. Aksi takdirde, bir derleme hatası alırsınız.
Dikkate kıymet başka bir anahtar nokta: Bash, ilkin bir değişken tanımlamanıza ve sonrasında bir kıymet atamanıza izin vermez. Oluşturmada değişkene bir kıymet atamanız gerekir.
var2 # compilation error
var2=World
Kimi zaman, değişkeninize içinde boşluk olan bir mısra atamanız gerekebilir. Bu şekilde bir durumda, dizeyi tırnak içine al.
# var3=Hello World
# above assignment doesn't work
var3='Hello World'
Tek tırnak kullanımına dikkat edin. Bu tırnak işaretleri de “kuvvetli tırnak işaretleri” olarak adlandırılır, şu sebeple kıymeti herhangi bir hususi karaktere bakılmaksızın yazıldığı şeklinde tam olarak atarlar.
Yukarıdaki örnekte, çift tırnak işaretleri (“zayıf tırnak işaretleri”) da kullanmış olabilirsiniz, sadece bu daima birbirinin yerine kullanılabileceği anlamına gelmez. Bunun sebebi, çift tırnak işaretinin hususi karakterleri (mesela, $), kelimenin tam anlamıyla yorumlamak yerine.
Aşağıdaki örneğe bakın:
var4=89
echo "The number is $var4"
echo 'The number is $var4'
# First output prints: 89
# Second output prints leaves "$var4" as it is
Değişkeninize bir komut satırı çıktısı atamak istiyorsanız, backquotes (“). İçlerinde bulunan dizeyi bir terminal komutu olarak ele alırlar ve sonucunu döndürürler.
var5="You are currently working in this directory: `pwd`"
Bash’te Parametre Genişletme
Parametre Genişletme, yalnızca bir değişkenin değerine erişmeyi ifade eder. En kolay haliyle, hususi karakteri kullanır $ peşinden değişken adı (arada boşluk olmadan):
var6=Jack
echo My name is $var6
Sözdizimini de kullanabilirsiniz ${variableName} değişkenin değerine erişmek için. Değişken adını çevreleyen kargaşalık ortaya çıktığında bu biçim daha uygundur.
m=Med
echo Med stands for ${m}ical
Kıvırcık braketleri dışarıda bırakırsanız, ${m}ical bileşik değişken olarak yorumlanacaktır (bu yoktur). Değişkenli kıvırcık braketlerin bu kullanımı “değişiklik yapma” olarak bilinir.
Genel Değişkenler
Daha ilkin de belirtildiği şeklinde, Linux sisteminizde tüm komut dosyalarınızda (yada kabuklarınızda) erişilebilen bazı yerleşik değişkenler vardır. Bu değişkenlere mahalli değişkenlerle aynı sözdizimi kullanılarak erişilir.
Bu değişkenlerin bir çok BLOCK harflerindedir. Sadece, bazıları alfasayısal karakterler bile olmayan tek karakterlerdir.
Aşağıda, bazı yaygın yararlı genel değişkenler bulunmaktadır:
EV: Kullanıcının giriş dizinini sağlar
KABUK: Kullandığınız kabuk türünü sağlar (mesela Bash, csh.. vb.)
?: Önceki komutun çıkış durumunu sağlar
Sisteminizdeki genel değişkenlerin listesini almak için, printenv (yada env) komutu:
$ printenv
Bash Komut Dosyası’ndaki Döngüler
Artık değişkenlerin ne işe yaradığını, iyi mi atandığını ve bu tarz şeyleri kullanarak temel Bash mantığının iyi mi gerçekleştirildiğini bildiğiniz gibi.
Döngüler, birden oldukca deyim içinde yineleme yapmanızı sağlar. Bash barındırır için döngüler ve iken tüm döngü gereksinimleriniz için kolay bir sözdizimi ile döngüler.
Bash geliştirme sanatını ustalaştırıyorsanız, için döngüler listenizde sırada olmalıdır.