Linux Komutları

Bash değerlendirme komutu

Bash değerlendirme komutu
'eval' komutu, bir kabuk komutu gibi argümanları yürütmek için bash'ta kullanılır. Argümanlar bir dizgede birleştirilir ve komutu yürütmek için kabuk komutunun girdisi olarak alınır. 'eval' komutu geçerli kabukta yürütür. Bu komut, özel bir operatör veya ayrılmış anahtar sözcükler içeren herhangi bir komutun yürütülmesi gerektiğinde kullanışlıdır. Bu komut, komut dosyası çalıştırılana kadar değişken adının bilinmediği herhangi bir komut dosyasında kullanılabilir. Bu eğitim, Linux kullanıcılarının bu komutun kullanımını öğrenmelerine yardımcı olacaktır.

Sözdizimi:

değerlendirmek [argüman… ]

Burada, argümanlar ayrıştırılır ve kabuk tarafından yürütülecek bir dizgede birleştirilir. 'eval', komutu yürüttükten sonra bir çıkış durum kodu döndürür. 'eval', herhangi bir argüman sağlanmadıysa veya yalnızca boş argüman sağlandıysa, çıkış durum kodu olarak 0 döndürür.

Örnek-1: 'eval' kullanarak 'wc' komutunu çalıştırın

“ adlı bir metin dosyası olduğunu varsayalımBölüm.Txt” aşağıdaki metni içerir. Dosyanın toplam satır sayısı 'wc' komutu ile sayılabilir.

Bölüm.Txt

ÖAM
EEE
ETE
İNGİLİZCE
BBA
ECZANE

Aşağıdaki komut, dosyanın toplam sayı satırlarını saymak için 'wc' komutunu saklayacaktır, Bölüm.Txt değişkene, $komutum.

$ mycommand="wc -l departmanı.Txt"

Aşağıdaki 'eval' komutu 'wc' komutunu çalıştıracak ve toplam satır sayısını yazdıracaktır.

$ değerlendirme $komutum

Çıktı:

Çıktı gösteriyor ki Bölüm.Txt dosyada 6 satır var.

Örnek-2: 'eval' kullanarak 'expr' komutunu çalıştırın

adlı bir bash dosyası oluşturun en yüksek.ş ve aşağıdaki betiği ekleyin. Bu komut dosyası, $x ve $y değişkenine iki tamsayı değeri atayacaktır. 'Expr' ve 'echo' komutları, daha sonra 'eval' komutu kullanılarak yürütülen $c1 ve $c2 olmak üzere iki değişkene atanır.

en yüksek.ş

#!/bin/bash
#x ve y değişkenini başlat
x=5
y=15
#İlk komut değişkeni, $x ve $y değerlerini eklemek için 'expr' komutunu atamak için kullanılır
c1="'ifade $x + $y'"
#'echo' komutunu atamak için ikinci komut değişkeni kullanılır
c2="eko"
#'eval', $c1 komutlarını yürüterek $x ve $y toplamını hesaplar ve yazdırır
ve $c2 değişkenleri
değerlendir $c2 $c1

Komut dosyasını çalıştırın.

$ bash değerlendirmesi.ş

Çıktıda gösterilen 5 ve 15'in toplamı 20'dir.

Örnek-3: Başka bir değişkene atanan bir değişkenin değerini yazdırın

evaltest2 adlı bir bash betiği oluşturun.sh aşağıdaki komut dosyasıyla. Burada, bir dize verisi içeren başka bir değişkenin adını atamak için bir değişken kullanılır. 'eval' komutu, başka bir değişkenin adını içeren değişkenin değerini içerik olarak yazdıracaktır.

evaltest2.ş

#!/bin/bash
# $str1 değişkenine bir string değeri atayın
str1="Kabuk Komut Dosyası"
# $str2 değişkenine “str1” değişken adını atayın
str2=str1
#Komutu $command değişkeninde saklayın
komut = "eko"
# 'eval' komutu, 'echo' komutunu çalıştıracak ve değişkenin değerini yazdıracaktır
başka bir değişkende bulunan
eval $komut \$$str2

Komut dosyasını çalıştırın.

$ bash evaltest2.ş

Değişkenin değeri, $str1 yazdırılır.

Adı başka bir değişkenin değeri olan bir değişkenin değerine erişmenin başka bir yolu daha vardır. kullanma'!' sembolü bu tür değişkenin değerine erişilebilir. Aşağıdaki komut, önceki komut dosyasına alternatif olarak kullanılabilir ve çıktı aynı olacaktır.

$ str1="Kabuk Komut Dosyası"; str2=str1; komut = "eko"; eval $komut $!str2

Örnek-4: Değerleri olan bir dizi değişken oluşturun ve 'eval' komutunu kullanarak değerlerin toplamını hesaplayın

evaltest3 adlı bir bash betiği oluşturun.sh ve aşağıdaki betiği ekleyin. Bu komut dosyası bir dizi değişken oluşturacak ve 'eval' komutunu kullanarak değerleri değişkenlere kaydedecektir. Değişkenlerin değerleri eklenecek ve $sum adlı bir değişkene kaydedilecektir. Daha sonra, dize değerlerine sahip 'echo' komutu, $sum değişkeninin değerini yazdırmak için 'eval' komutunda kullanılan bir değişkene atanır.

evaltest3.ş

#!/bin/bash
# $sum değişkenini 0 değeriyle başlat
toplam=0
# 4 kez yinelenecek bir for döngüsü bildirin
n için 1… 4
yapmak
# eval komutunu kullanarak dört değişken oluşturun
değerlendir x$n=$n
# $sum ile değişkenin değerlerini ekleyin
toplam=$(($toplam+$x$n))
bitti
# Bir değişkene string ile 'echo' komutunu atayın
command="echo 'Toplamın sonucu='"
# 'eval' komutu değişkenleri kullanarak toplam değeri yazdırır
değerlendirme $komut $toplam

Komut dosyasını çalıştırın.

$ bash evaltest3.ş

Dört değişkenin toplamı, yazdırılan 1+2+3+4=10'dur.

Örnek-5: Dosya listesini kaldırmak için 'eval' komutunu kullanma

evaltest4 adlı bir bash dosyası oluşturun.sh aşağıdaki komut dosyasıyla. Bu komut dosyası, kaldırılacak dosya adları olarak üç komut satırı bağımsız değişkenini okuyacak ve bağımsız değişken değerlerini $fn adlı bir dizi değişkeninde depolayacaktır. 'rm' komutu $command değişkeninde saklanır. For döngüsü, her dosya adını almak ve dosya varsa 'eval' komutunu kullanarak dosyayı kaldırmak için burada bildirildi.

evaltest4.ş

#!/bin/bash
#Bir dizi bildir
beyan -A fn
# Üç komut satırı argümanını okuyun ve dizinin üç dizininde saklayın
fn[0]=$1
fn[1]=2$
fn[2]=3$
# Kaldır komutunu bir değişkene kaydedin
komut = "rm"
# for döngüsü, üç dizi öğesini okumak için üç kez yinelenir
0 1 2'deki dizin için
yapmak
# Dosyanın var olup olmadığını kontrol edin
if [[ -f $fn[$index] ]]; sonra
# dosya varsa dosyayı kaldırın
eval $command $fn[$index]
# Dosyanın kaldırıldığını kullanıcıya bildirin
echo "$fn[$index] silindi."
Başka
#Kullanıcıya dosyanın mevcut olmadığını bildirin
echo "$fn[$index] mevcut değil."
fi
bitti

Komut dosyasını çalıştırın.

$ bash evaltest4.sh işaretleri.belge öğesi.txt ürünü.belge

Burada, komut dosyasının yürütülmesi sırasında üç dosya adı sağlanır. Çıktı, işaretlerin olduğunu gösteriyor.docx ve ürün.docx geçerli konumda bulunur ve dosyalar kaldırılır ve, öğe.txt geçerli konumda mevcut değil.

Sonuç

Herhangi bir bash komutu, bir dize olarak bildirilerek 'eval' komutuyla yürütülebilir. Bu öğreticide 'eval' komutu, farklı yerleşik bash komutlarını yürütmek ve bir dizi değişken oluşturmak için kullanılır. Kullanıcılar için 'eval' komutunun kullanımları temizlenecek ve bu öğreticiyi okuduktan sonra bu komutu çeşitli amaçlar için kullanabilecekler.

En İyi Oculus Uygulama Laboratuvarı Oyunları
Oculus başlık sahibiyseniz, yandan yükleme hakkında bilgi sahibi olmalısınız. Sideloading, kulaklığınıza mağaza dışı içerik yükleme işlemidir. SideQue...
Ubuntu'da Oynanacak En İyi 10 Oyun
Windows platformu, günümüzde doğal olarak Windows'u desteklemek için geliştirilen oyunların büyük bir yüzdesi nedeniyle oyun oynamak için hakim platfo...
Linux için En İyi 5 Arcade Oyunu
Günümüzde bilgisayarlar oyun oynamak için kullanılan ciddi makinelerdir. Yeni yüksek puanı alamazsan, ne demek istediğimi anlayacaksın. Bu yazıda, bug...