Değişkene BASH komut çıktısı

Bash Command Output Variable



Kullanıcının gereksinimlerine göre terminalden farklı türde bash komutlarının çalıştırılması gerekir. Kullanıcı terminalden herhangi bir komut çalıştırdığında, hata yoksa çıktıyı gösterir, aksi takdirde hata mesajını gösterir. Bazen, komutun çıktısının ileride kullanılmak üzere bir değişkende saklanması gerekir. Bash'in kabuk komut değiştirme özelliği bu amaçla kullanılabilir. Bu özelliği kullanarak farklı kabuk komutlarını değişkende nasıl saklayabileceğiniz bu öğreticide gösterilmektedir.

değişken= $(emretmek)
değişken= $(emretmek [seçenek…]argüman1 argüman2 ...)
değişken= $(/yol/ile/emretmek)

VEYA







değişken=``emretmek``
değişken=``emretmek [seçenek…]argüman1 argüman2 ...``
değişken=`/yol/ile/emretmek``

***Not: Yukarıdaki komutları kullanırken eşittir işaretinden önce ve sonra boşluk bırakmayın.



Bir değişkene tek komut çıkışı

Bash komutları, bu parçaların isteğe bağlı olduğu komutlar için herhangi bir seçenek ve argüman olmadan kullanılabilir. Aşağıdaki iki örnek, basit komut ikamesinin kullanımlarını göstermektedir.



Örnek 1:

bash ` tarih' komutu geçerli tarih ve saati göstermek için kullanılır. Aşağıdaki komut dosyası ` çıktısını saklayacaktır. tarih' $ içine komut Geçerli tarih komut ikamesi kullanarak değişken.





$Geçerli tarih= $(tarih)
$dışarı attı 'Bugün$current_date'

Çıktı:



Örnek #2:

'pwd' komutu, geçerli çalışma dizininin yolunu gösterir. Aşağıdaki komut dosyası çıktısını saklar 'pwd' değişkene komut verin, $ akım_dir ve bu değişkenin değeri kullanılarak yazdırılır 'yankı' emretmek.

$current_dir=``pwd``
$dışarı attı 'Geçerli dizin:$ akım_dir'

Çıktı:

Seçenek ve argüman içeren komut

Bazı bash komutları için seçenek ve argüman zorunludur. Aşağıdaki örnekler, komutun çıktısını seçenek ve argüman ile bir değişkende nasıl saklayabileceğinizi gösterir.

Örnek#3:

Bash` tuvalet komutu, herhangi bir dosyanın toplam satır, kelime ve karakter sayısını saymak için kullanılır. Bu komut, çıktıyı oluşturmak için seçenek olarak -c, -w ve -l ve argüman olarak dosya adını kullanır. adlı bir metin dosyası oluşturun. meyveler.txt sonraki komut dosyasını test etmek için aşağıdaki verilerle.
meyveler.txt

meyveler.txt
Mango
turuncu
Muz
Üzüm
Guava
elma

Toplam sözcük sayısını saymak ve depolamak için aşağıdaki komutları çalıştırın. meyveler.txt bir değişkene dosya, $count_words ve ` kullanarak değeri yazdırın yankı' emretmek.

$sayı_kelimeler=``tuvalet -içindemeyveler.txt``
$dışarı attı 'Meyveler.txt'deki toplam kelime sayısı$count_words'

Çıktı:

Örnek#4:

'kes' çıktıyı oluşturmak için seçenek ve argüman kullanan başka bir bash komutudur. adlı bir metin dosyası oluşturun. hafta içi.txt sonraki komut dosyasını çalıştırmak için yedi hafta içi adlarla.

hafta içi.txt

Pazartesi
Salı
Çarşamba
Perşembe
Cuma
Cumartesi
Pazar

adlı bir bash dosyası oluşturun cmdsub1.sh aşağıdaki komut dosyası ile. Bu komut dosyasında, süre döngü içeriğini okumak için kullanılır hafta içi.txt satır satır dosyalayın ve ` kullanarak her satırın ilk üç karakterini okuyun. kes' emretmek. Kesildikten sonra, dize değeri değişkende saklanır $gün . Sonraki, ifadesi değerini kontrol etmek için kullanılırsa $gün NS ' Güneş' ya da değil. Çıktı yazdıracak ' Pazar tatildir ' koşul doğruysa, aksi takdirde değerini yazdırır $gün .

cmdsub1.sh

#!/bin/bash
dosya adı='hafta içi.txt'
süre okumanhat;yapmak
gün=``dışarı attı $çizgi | kesmek -C 1-3``
Eğer [ $gün=='Güneş' ]
sonra
dışarı attı 'Pazar tatildir'
Başka
dışarı attı $gün
olmak
tamamlamak<$dosya adı

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

$kedihafta içi.txt
$bashcmdsub1.sh

Çıktı:

Döngüde komut değiştirmeyi kullanma

Komut ikamesinin çıktısını, sonraki örnekte gösterilen herhangi bir döngü değişkeninde saklayabilirsiniz.

Örnek#5:

adlı bir dosya oluşturun cmdsub2.sh aşağıdaki kod ile. Burada, ` ls -d * / ` komutu, geçerli dizinden tüm dizin listesini almak için kullanılır. For döngüsü burada çıktıdaki her dizini okumak ve onu değişkende saklamak için kullanılır. $dirname hangi daha sonra yazdırılır.

cmdsub2.sh

#!/bin/bash
için dirname içinde$(ls -NS * /)
yapmak
dışarı attı '$dirname'
tamamlamak

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

$bashcmdsub2.sh

Çıktı:

İç içe komutları kullanma

Pipe(|) kullanarak birden çok komutu nasıl kullanabileceğiniz önceki örnekte gösterilmiştir. Ancak, ilk komutun çıktısının ikinci komutun çıktısına bağlı olduğu ve boru(|) komutunun tersi çalıştığı durumlarda, iç içe komutları komut ikamesinde kullanabilirsiniz.

İç içe komut sözdizimi:

nerede=``komut1 ``emretmek``

Örnek#6:

İki komut, ` dışarı attı ` ve ` kim ` bu örnekte iç içe komut olarak kullanılmıştır. Burada, ` kim ` komutu, ilk olarak, oturum açmış olan kullanıcının kullanıcı bilgilerini yazdıran yürütülür. ` çıktısı kim ` komutu ` tarafından yürütülecek dışarı attı ` komutu ve ` çıktısı dışarı attı ` değişkene depolayacak $ var . Burada ` çıktısı dışarı attı ` komutu ` çıktısına bağlıdır kim ` komutu.

$nerede=``dışarı attı``kim``
$dışarı attı $ var

Çıktı:

Komut yolunu kullanma

Komutun yolunu biliyorsanız, komut değiştirmeyi kullanırken komut yolunu belirterek komutu çalıştırabilirsiniz. Aşağıdaki örnek, komut yolunun kullanımını gösterir.

Örnek#7:

'vay' komutu, o anda oturum açmış olan kullanıcının kullanıcı adını gösterir. Varsayılan olarak, bu komut / usr/ NS/ dosya. Çalıştırmak için aşağıdaki betiği çalıştırın ` kim yolu kullanarak komut ve değişkende saklayın, $çıktı, ve değerini yazdır $çıktı .

$çıktı= $(/usr/NS/ben kimim)
$dışarı attı $çıktı

Çıktı:

Komut Satırı bağımsız değişkenini kullanma

Komut yerine komut satırı argümanını komutla birlikte argüman olarak kullanabilirsiniz.

Örnek#8:

adlı bir bash dosyası oluşturun cmdsub3.sh aşağıdaki komut dosyası ile. ` temel ad ` komutu burada dosya adını 2'den almak için kullanılır.ndkomut satırı argümanı ve değişkende saklanır, $dosya adı . 1'i biliyoruzNSkomut satırı argümanı, 0 $ ile gösterilen yürütülmekte olan komut dosyasının adıdır.

#!/bin/bash
dosya adı=``temel ad 1 dolar``
dışarı attı 'Dosyanın adı$dosya adı.'

Komut dosyasını aşağıdaki bağımsız değişken değeriyle çalıştırın.

$bashcmdsub3.sh Masaüstü/sıcaklık/merhaba.txt

Buraya, temel ad yolun, Masaüstü/temp/merhaba.txt NS ' merhaba.txt '. Yani, değeri $dosya adı olacak merhaba.txt .

Çıktı:

Çözüm:

Bu öğreticide komut ikamelerinin çeşitli kullanımları gösterilmektedir. Birden fazla komutla veya bağımlı komutlarla çalışmanız ve daha sonra başka görevleri yapmak için sonucu geçici olarak saklamanız gerekiyorsa, çıktıyı almak için komut dosyanızda bu özelliği kullanabilirsiniz.

Videoda daha fazla bilgi: