Linux'ta, bash betiği için girdi olarak komut satırı argümanlarını kullanırız. Bash, bu komut satırı bağımsız değişkenlerini sırayla alabilir ve bir seçenek olarak ayrıştırabilir. Bu bağımsız değişkenler, eylemleri ve betiğin çıktısını dinamik olarak etkilemenize izin verir.
Girdi ve çıktıyı etkilemek için bu bağımsız değişkenleri farklı şekilde yapılandırabilirsiniz. Bu nedenle bash'ta komut satırı bağımsız değişkenlerini işlemek önemlidir, ancak birçok yeni kullanıcının bunu nasıl yapacağını öğrenmesi gerekir. Dolayısıyla bu kılavuzda, bash'ta komut satırı argümanlarını ele almanın farklı yollarını açıklayacağız.
Bash'te Komut Satırı Argümanları Nasıl Kullanılır?
Bash'te komut satırı argümanlarını işlemenin çeşitli yolları vardır, bu yüzden kısa bilgi almak için bunlara bir göz atalım:
getopt İşlevi
getopt işlevi, bash'ta bağımsız değişkenleri tanımlama ve ayrıştırma için seçenekler ve sözdizimi sağladığı için kullanışlıdır. Bir veritabanı dosyası oluştururken veya bağımsız değişkenlere dayalı olarak belirli bir biçimde rapor oluştururken kullanabileceğiniz yerleşik bir Linux işlevidir. Getopt işlevi, iki tür bağımsız değişken olduğundan, kısa komut satırı bağımsız değişkenlerinin ayrıştırılmasına yardımcı olur:
- Kısa Argümanlar: Bunlar, kısa çizginin izlediği tek karakterli bağımsız değişkenlerdir. Örneğin, -a, -l, -h, vb., tek bağımsız değişkenlere birkaç örnektir.
- Uzun Argümanlar: Bunlar, çift tire ile takip edilen çok karakterli bağımsız değişkenlerdir. –all, –list, –help gibi çeşitli uzun argüman örnekleri vardır.
Getopt yardımcı programını kullanarak komut satırı argümanlarını işleyeceğimiz bir örneği ele alalım. Aşağıdaki bilgileri içeren “getopt.sh” adlı bir bash betiği oluşturduk:
!/ çöp Kutusu / darbe
süre getopts 'A:B:C:D:' detaylar; yapmak
dava ' $ ayrıntılar ' içinde
A )
Eko 'Vatandaş Adı $OPTARG ' ;;
B )
Eko 'Vatandaş kimliği $OPTARG ' ;;
C )
Eko 'Doğum Yeri $OPTARG ' ;;
D )
Eko 'Meslek $OPTARG ' ;;
* )
çıkış 1 ;;
esac
tamamlamak
vardiya ' $(($SEÇME -1) )'
eğer [ ! -İle birlikte 1 dolar ] ; sonra
Eko 'Medeni Durum $1'
başka
Eko 'Giriş Yok'
çıkış 1
olmak
eğer [ ! -İle birlikte 2 dolar ] ; sonra
Eko 'Aile Üyeleri 2 Dolar'
olmak
Şimdi betiği girdideki gerekli argümanlarla çalıştıralım:
Yukarıdaki görselde de görebileceğiniz gibi betiği sadece getopt fonksiyonları ile çalıştırıyoruz ve ardından tam sonuca ulaşmak için normal argümanları ekliyoruz.
Bayrakları Kullanma
Bayraklar, önünde tire (-) bulunan tek karakterlerden başka bir şey değildir. getopt işlevini kullanarak argümanları ilettiğimizde bayrakları kullanırız. -a, -b, -c bayraklara bazı örneklerdir. Örneğin, bir komut dosyası bir vatandaşın adını, kimliğini, yerini, yaşını ve mesleğini gerektirir. Bu nedenle, vatandaşın adını, kimliğini, yerini, yaşını ve mesleğini aynı anda tanımlamak için j, k, l, m, n bayraklarını kullandık:
#!/bin/bashSüre getopts j:k:l:m:n: flag_info
yapmak
dava ' ${flag_info} ' içinde
< ol >
< o > j ) vatandaş adı = ${OPTARG} ;; o >
< o > k ) vatandaşlık numarası = ${OPTARG} ;; o >
< o > ben ) yer = ${OPTARG} ;; o >
< o > m ) yaş = ${OPTARG} ;; o >
< o > n ) Meslek = ${OPTARG} ;; o >
ol >
esac
tamamlamak
Eko 'İşte girilen ayrıntılar:'
Eko 'Vatandaş Adı: $vatandaş adı ' ;
Eko 'Vatandaşlık numarası: $vatandaş ' ;
Eko 'Yer: $ yer ' ;
Eko 'Yaş: $yaş ' ;
Eko 'Meslek: $meslek ' ;
Komut dosyası, terminalde aşağıdaki sonucu verecektir:
. /< senaryo > .sh -j Danny -k 476 -l toronto -m 25 -n Yazar
kullanma [e-posta korumalı] Döngüler ile
“ [e-posta korumalı] ” değişkeni, tüm giriş bağımsız değişkenlerinin dizisinden başka bir şey değildir. “ kullanarak herhangi bir sayıda girişi iletebiliriz. [e-posta korumalı] ” değişken. Bağımsız değişkenler arasında yineleme yapmak için bu değişkeni bir döngü olarak kullanabilirsiniz. “ [e-posta korumalı] ” değişkeni o zaman işe yarar; giriş boyutunu bilmiyorsunuz ve konumsal argümanları alamıyorsunuz. Bu nedenle, “ [e-posta korumalı] ” getopt işlevini tekrar tekrar tanımlamak yerine. İşte döngüleri kullanmanın bir örneği ve [e-posta korumalı] bir komut dosyasında birlikte:
#!/bin/bashbirde = ( “$ @ ” )
eğer [ $# -gt 1 ]
sonra
Ekle = $ ( ( ${num[0]} + ${num[1]} ) )
Eko 'Tüm sayıların eklenmesi: $ekle '
çıkarma =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )
Eko 'Sayıların çıkarma işlemi: $çıkarma '
çarpmak =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )
Eko 'Sayıların çarpımı: $çarp '
bölüm1 = $ ( ( ${num[0]} / ${num[1]} ) )
Eko 'bölünmesi ${num[0]} ve ${num[1]} dır-dir: $bölüm1 '
bölüm2 = $ ( ( ${num[1]} / ${num[2]} ) )
Eko 'Bölünmesi ${num[1]} ve ${num[2]} dır-dir: $bölüm2 '
bölüm3 =$ ( ( ${num[0]} / ${num[2]} ) )
Eko 'Bölünmesi ${num[0]} ve ${num[2]} dır-dir: $bölüm2 '
olmak
Yukarıdaki komut dosyası, komut satırı argümanlarına dayalı olarak farklı aritmetik hesaplamalar gerçekleştirir. Örneğin, girdi olarak 50, 35 ve 15 girdik:
Konum Parametrelerini Kullanma
Konumsal parametrelere, önce $1'e, ardından $2'ye vb. erişirken erişebilirsiniz. Örneğin, ilk bağımsız değişken olarak bir adı ve ikinci olarak bir şehri okuyan bir komut dosyası oluşturalım. Ancak önce şehri, sonra adı geçerseniz, o zaman adı şehir olarak kabul eder ve tersi de geçerlidir. Bu kavramı anlamak için aşağıdaki komut dosyasına daha derin bir dalış yapalım:
#!/bin/bashEko 'İşte girilen detaylar'
Eko '1 $ adı'
Eko 'şehir 2 dolar'
Komut dosyasını terminalde yürütürken adı ve şehri eklemeniz gerekir:
Sarma
Bash'te komut satırı bağımsız değişkenlerini ele alma yöntemleri hakkında bilmeniz gereken her şey bu. Deneyebileceğiniz farklı yaklaşımları uygun örneklerle açıkladık. Komut dosyasına bağımsız değişkenler eklemek istiyorsanız, çeşitli komutlar vardır. Bu yüzden onlar hakkında daha fazla bilgi edinmek için Linuxhint'i ziyaret ettiğinizden emin olun.