Unix / Linux - Kabuk Değişkenlerini Kullanma

Bu bölümde, Unix'te Shell değişkenlerinin nasıl kullanılacağını öğreneceğiz. Bir değişken, bir değer atadığımız bir karakter dizesidir. Atanan değer bir sayı, metin, dosya adı, cihaz veya başka herhangi bir veri türü olabilir.

Bir değişken, gerçek verilere bir göstericiden başka bir şey değildir. Kabuk, değişkenleri oluşturmanıza, atamanıza ve silmenize olanak tanır.

Değişken İsimler

Bir değişkenin adı yalnızca harfleri (a'dan z'ye veya A'dan Z'ye), sayıları (0'dan 9'a) veya alt çizgi karakterini (_) içerebilir.

Geleneksel olarak, Unix kabuk değişkenlerinin adları BÜYÜK HARF içinde olacaktır.

Aşağıdaki örnekler geçerli değişken isimleridir -

_ALI
TOKEN_A
VAR_1
VAR_2

Aşağıda geçersiz değişken adlarının örnekleri verilmiştir -

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

Gibi diğer karakterleri kullanamamanın nedeni !, *veya - bu karakterlerin kabuk için özel bir anlamı olmasıdır.

Değişkenleri Tanımlama

Değişkenler aşağıdaki gibi tanımlanır -

variable_name=variable_value

Örneğin -

NAME="Zara Ali"

Yukarıdaki örnek, NAME değişkenini tanımlar ve ona "Zara Ali" değerini atar. Bu türdeki değişkenlerescalar variables. Skaler bir değişken, bir seferde yalnızca bir değer tutabilir.

Shell, bir değişkende istediğiniz herhangi bir değeri saklamanıza olanak sağlar. Örneğin -

VAR1="Zara Ali"
VAR2=100

Değerlere Erişim

Bir değişkende depolanan değere erişmek için, adının önüne dolar işareti koyun ($) -

Örneğin, aşağıdaki komut dosyası, tanımlı NAME değişkeninin değerine erişecek ve bunu STDOUT'a yazdıracaktır -

#!/bin/sh

NAME="Zara Ali"
echo $NAME

Yukarıdaki komut dosyası aşağıdaki değeri üretecektir -

Zara Ali

Salt okunur Değişkenler

Kabuk, salt okunur komutunu kullanarak değişkenleri salt okunur olarak işaretlemek için bir yol sağlar. Bir değişken salt okunur olarak işaretlendikten sonra değeri değiştirilemez.

Örneğin, aşağıdaki komut dosyası NAME öğesinin değerini değiştirmeye çalışırken bir hata oluşturur -

#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

Yukarıdaki komut dosyası aşağıdaki sonucu oluşturacaktır -

/bin/sh: NAME: This variable is read only.

Ayarsız Değişkenler

Bir değişkenin ayarının kaldırılması veya silinmesi, kabuğu, değişkeni izlediği değişkenler listesinden kaldırmaya yönlendirir. Bir değişkeni sildikten sonra, değişkendeki kayıtlı değere erişemezsiniz.

Aşağıda, tanımlanmış bir değişkenin ayarını kaldırmak için sözdizimi verilmiştir. unset komut -

unset variable_name

Yukarıdaki komut, tanımlanmış bir değişkenin değerini kaldırır. İşte komutun nasıl çalıştığını gösteren basit bir örnek -

#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

Yukarıdaki örnek hiçbir şey yazdırmaz. Unset komutunu kullanarakunset işaretlenen değişkenler readonly.

Değişken Türler

Bir kabuk çalışırken, üç ana değişken türü bulunur -

  • Local Variables- Yerel değişken, kabuğun geçerli örneğinde bulunan bir değişkendir. Kabuk tarafından başlatılan programlar için mevcut değildir. Komut isteminde ayarlanırlar.

  • Environment Variables- Kabuğun herhangi bir alt süreci için bir ortam değişkeni mevcuttur. Bazı programların doğru çalışması için ortam değişkenlerine ihtiyacı vardır. Genellikle, bir kabuk komut dosyası yalnızca çalıştırdığı programların ihtiyaç duyduğu ortam değişkenlerini tanımlar.

  • Shell Variables- Kabuk değişkeni, kabuk tarafından ayarlanan ve doğru çalışması için kabuk tarafından gerekli olan özel bir değişkendir. Bu değişkenlerin bazıları ortam değişkenleri iken diğerleri yerel değişkenlerdir.