Unix / Linux - Kabuk Temel Operatörleri
Her bir kabuk tarafından desteklenen çeşitli operatörler vardır. Bu bölümde Bourne kabuğu (varsayılan kabuk) hakkında ayrıntılı olarak tartışacağız.
Şimdi aşağıdaki operatörleri tartışacağız -
- Aritmetik operatörler
- İlişkisel Operatörler
- Boole Operatörleri
- Dize Operatörleri
- Dosya Test Operatörleri
Bourne kabuğunun başlangıçta basit aritmetik işlemleri gerçekleştirmek için herhangi bir mekanizması yoktu, ancak harici programlar da kullanıyor. awk veya expr.
Aşağıdaki örnek, iki sayının nasıl ekleneceğini gösterir -
#!/bin/sh
val=`expr 2 + 2`
echo "Total value : $val"
Yukarıdaki komut dosyası aşağıdaki sonucu oluşturacaktır -
Total value : 4
Eklerken aşağıdaki noktaların dikkate alınması gerekir -
Operatörler ve ifadeler arasında boşluk olmalıdır. Örneğin 2 + 2 doğru değil; 2 + 2 şeklinde yazılmalıdır.
Tam ifade arasına alınmalıdır ‘ ‘, backtick çağırdı.
Aritmetik operatörler
Aşağıdaki aritmetik operatörler Bourne Shell tarafından desteklenmektedir.
Değişken varsay a 10 ve değişken tutar b 20 tutar sonra -
Örnekleri Göster
Şebeke | Açıklama | Misal |
---|---|---|
+ (Toplama) | Operatörün her iki tarafına da değerler ekler | `expr $ a + $ b` 30 verir |
- (Çıkarma) | Sağ el işleneni sol el işlenenden çıkarır | `expr $ a - $ b` -10 verir |
* (Çarpma işlemi) | İşlecin her iki tarafındaki değerleri çarpar | `expr $ a \ * $ b` 200 verir |
/ (Bölünme) | Sol el işleneni sağ el işlenene böler | `expr $ b / $ a` 2 verir |
% (Modül) | Sol el işleneni sağ el işlenene böler ve kalanı döndürür | `expr $ b% $ a` 0 verir |
= (Ödev) | Sol işlenende sağ işleneni atar | a = $ b, b'nin değerini a'ya atar |
== (Eşitlik) | İki sayıyı karşılaştırır, eğer ikisi de aynıysa true döndürür. | [$ a == $ b] yanlış döndürür. |
! = (Eşitlik Değil) | İki sayıyı karşılaştırır, eğer ikisi de farklıysa doğru döndürür. | [$ a! = $ b] doğru döndürür. |
Tüm koşullu ifadelerin, örneğin, köşeli parantez içinde ve etraflarında boşluklar olması gerektiğini anlamak çok önemlidir. [ $a == $b ] doğru oysa [$a==$b] yanlış.
Tüm aritmetik hesaplamalar uzun tamsayılar kullanılarak yapılır.
İlişkisel Operatörler
Bourne Shell, sayısal değerlere özgü aşağıdaki ilişkisel operatörleri destekler. Bu operatörler, değerleri sayısal olmadıkça dize değerleri için çalışmaz.
Örneğin, aşağıdaki operatörler 10 ile 20 arasındaki ve "10" ile "20" arasındaki bir ilişkiyi kontrol etmeye çalışacak, ancak "on" ile "yirmi" arasındaki ilişkiyi kontrol etmeyecektir.
Değişken varsay a 10 ve değişken tutar b 20 tutar sonra -
Örnekleri Göster
Şebeke | Açıklama | Misal |
---|---|---|
-eq | İki işlenenin değerinin eşit olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a -eq $ b] doğru değil. |
-ne | İki işlenenin değerinin eşit olup olmadığını kontrol eder; değerler eşit değilse, koşul doğru olur. | [$ a -ne $ b] doğrudur. |
-gt | Soldaki işlenenin değerinin sağ işlenenin değerinden büyük olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a -gt $ b] doğru değil. |
-lt | Sol işlenenin değerinin sağ işlenenin değerinden küçük olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a -lt $ b] doğru. |
-ge | Sol işlenenin değerinin sağ işlenenin değerinden büyük veya ona eşit olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a -ge $ b] doğru değil. |
-le | Soldaki işlenenin değerinin sağ işlenenin değerinden küçük veya ona eşit olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a -le $ b] doğrudur. |
Tüm koşullu ifadelerin, etraflarında boşluklar bulunan köşeli parantezlerin içine yerleştirilmesi gerektiğini anlamak çok önemlidir. Örneğin,[ $a <= $b ] doğru oysa [$a <= $b] yanlış.
Boole Operatörleri
Aşağıdaki Boolean operatörleri Bourne Shell tarafından desteklenmektedir.
Değişken varsay a 10 ve değişken tutar b 20 tutar sonra -
Örnekleri Göster
Şebeke | Açıklama | Misal |
---|---|---|
! | Bu mantıksal olumsuzlamadır. Bu, gerçek bir koşulu yanlışa çevirir ve bunun tersi de geçerlidir. | [! false] doğrudur. |
-o | Bu mantıklı OR. İşlenenlerden biri doğruysa, koşul doğru olur. | [$ a -lt 20 -o $ b -gt 100] doğru. |
-a | Bu mantıklı AND. Her iki işlenen de doğruysa, aksi takdirde yanlış koşul doğru olur. | [$ a -lt 20 -a $ b -gt 100] yanlıştır. |
Dize Operatörleri
Aşağıdaki dize operatörleri Bourne Shell tarafından desteklenmektedir.
Değişken varsay a "abc" ve değişken tutar b "efg" tutar ve sonra -
Örnekleri Göster
Şebeke | Açıklama | Misal |
---|---|---|
= | İki işlenenin değerinin eşit olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [$ a = $ b] doğru değil. |
!= | İki işlenenin değerinin eşit olup olmadığını kontrol eder; değerler eşit değilse, koşul doğru olur. | [$ a! = $ b] doğrudur. |
-z | Verilen dizge işlenen boyutunun sıfır olup olmadığını kontrol eder; sıfır uzunlukta ise true döndürür. | [-z $ a] doğru değil. |
-n | Verilen dizge işlenen boyutunun sıfır olup olmadığını kontrol eder; sıfır olmayan uzunlukta ise true döndürür. | [-n $ a] yanlış değil. |
str | Kontrol eder strboş dize değil; boşsa, yanlış döndürür. | [$ a] yanlış değil. |
Dosya Test Operatörleri
Bir Unix dosyasıyla ilişkili çeşitli özellikleri test etmek için kullanılabilecek birkaç operatörümüz var.
Bir değişken varsayın file boyutu 100 bayt olan mevcut bir dosya adı "test" tutar ve read, write ve execute izin -
Örnekleri Göster
Şebeke | Açıklama | Misal |
---|---|---|
-b file | Dosyanın özel bir blok dosya olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-b $ dosya] yanlış. |
-c file | Dosyanın özel karakter dosyası olup olmadığını denetler; evet ise, o zaman durum gerçek olur. | [-c $ dosya] yanlış. |
-d file | Dosyanın bir dizin olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-d $ dosya] doğru değil. |
-f file | Dosyanın bir dizin veya özel dosyadan farklı olarak sıradan bir dosya olup olmadığını denetler; evet ise, o zaman durum gerçek olur. | [-f $ dosya] doğrudur. |
-g file | Dosyanın kendi grup kimliği (SGID) bit setine sahip olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-g $ dosya] yanlış. |
-k file | Dosyanın yapışkan bit setine sahip olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-k $ dosya] yanlış. |
-p file | Dosyanın adlandırılmış bir kanal olup olmadığını denetler; evet ise, o zaman durum gerçek olur. | [-p $ dosya] yanlıştır. |
-t file | Dosya tanımlayıcısının açık olup olmadığını ve bir uçbirimle ilişkili olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-t $ dosya] yanlıştır. |
-u file | Dosyanın Set User ID (SUID) bitinin ayarlanıp ayarlanmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-u $ dosya] yanlıştır. |
-r file | Dosyanın okunabilir olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-r $ dosya] doğrudur. |
-w file | Dosyanın yazılabilir olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-w $ dosya] doğrudur. |
-x file | Dosyanın çalıştırılabilir olup olmadığını kontrol eder; evet ise, o zaman durum gerçek olur. | [-x $ dosya] doğrudur. |
-s file | Dosyanın 0'dan büyük olup olmadığını kontrol eder; evet ise, o zaman koşul gerçek olur. | [-s $ dosya] doğrudur. |
-e file | Dosyanın var olup olmadığını kontrol eder; dosya bir dizin olsa da var olsa bile doğrudur. | [-e $ dosya] doğrudur. |
C Kabuk Operatörleri
Aşağıdaki bağlantı size C Kabuğu Operatörleri hakkında kısa bir fikir verecektir -
C Kabuk Operatörleri
Korn Shell Operatörleri
Aşağıdaki bağlantı, Korn Shell Operatörlerini anlamanıza yardımcı olur -
Korn Shell Operatörleri