"Enter"a basıp içeriğe geçin

Bash getopts – Linux İpucu

Bazen bash betiklerindeki komut satırı argümanlarını ve seçeneklerini okumamız gerekir. Komut satırı argümanları, argüman değişkenleri tarafından kolayca okunabilir. Ancak hem komut satırı argümanlarını hem de seçenekleri okumak için bash’ın yerleşik “getopts” komutunu kullanın. Bu komut, “-a” veya “-1” gibi kısa seçenekleri ve “–paket-adı” gibi uzun seçenekleri ayrıştırmak için kullanılabilir. Bu öğretici, komut satırı bağımsız değişkenlerini ve seçeneklerini ayrıştırmak için getopts komutunun nasıl kullanılacağına ilişkin çeşitli örneklerin kullanımını gösterir.

sözdizimi:

getopts tercih dizesi adı [argümanlar]

Seçenekler:

Burada en sık kullanılan getopt seçeneklerinden bahsedilmektedir.

Bir bilet Tanılama
-o veya –seçenekler Tek harf seçeneğini seçin.
Seçenekler -l veya -uzun Birden fazla karakter seçeneği belirleyin.
-n veya -ad Getopts komutundaki hataları bildir
-q veya -sessiz Hata raporlamayı devre dışı bırak
-T veya -testi Getopts sürümünü test edin
-a veya -alternatifler Tek “-” ile uzun seçeneğe izin verin.

Örnek 1: Dosya kullanma Salatalık

Bu örnek, getopts komutunun çok basit bir kullanımını göstermektedir. Kodu test etmek için aşağıdaki kodla ‘getopts1.sh’ adlı bir bash dosyası oluşturun. Burada getopts komut seçeneğinin while döngüsü devam edecektir. Case ifadesi seçeneği kontrol edecektir. Eğer seçenek ‘c’ ise, ‘Favori rengim mavi’ yazacaktır. Eğer seçenek ‘f’ ise ‘En sevdiğim yemek dondurmadır’ yazısı çıkacaktır. Seçenek ‘-m’ ise, ‘Favori filmim Titanic’ yazacaktır. Diğer herhangi bir seçenek değeri için şunları kullanmanız gerekir: [-c] veya [-f] veya [-m]Yazılacak.

#! / kutu / bash
# Seçeneği okuyun ve $option değişkeninde saklayın
SüregetoptsCFM Salatalık; yapmak
dava, davet${seçenek}içeri
c )#c seçeneği için
Eko“Favori rengim mavi”
;;
F )#f seçeneği için
Eko“En sevdiğim yemek dondurmadır.”
;;
M )#m seçeneği için
EkoEn sevdiğim film titanik
;;
\? )# geçersiz bir seçenek için
EkoKullanmalısın: [-c] veya [-f] veya [-m]”
;;
esac
tamamlamak

Komut dosyasını ‘-c’, ‘-f’, ‘-m’ ve ‘-k’ dört seçeneğiyle çalıştırın.

$ ezmek getopts1.sh -c
$ ezmek getopts1.sh -F
$ ezmek getopts1.sh M
$ ezmek getopts1.sh -K

Üretmek:

Örnek 2: Seçeneği tek bağımsız değişkenle kullanma

Bu örnek, getopts komutunun tek bir bağımsız değişkenle kullanımını gösterir. Kodu test etmek için aşağıdaki kodla ‘getopts2.sh’ adlı bir bash dosyası oluşturun. Burada ‘:’, komutun bir seçenekle bağımsız değişkenler alacağını tanımlamak için ‘p’ ile birlikte kullanılır. Çalışma zamanında ‘-p’ seçeneğiyle bağımsız değişkenler sağlarsa, komut dosyası bağımsız değişkenin değerini diğer dizeyle birlikte yazdırır. “-p” yerine herhangi bir seçenek sunacaksa seçeneğin değeri ile birlikte bir hata mesajı gösterecektir. ‘-p’ seçeneği herhangi bir argüman olmadan tedarik ederse, başka bir hata mesajı yazdırılacaktır.

#! / kutu / bash
Süregetopts“P:” Salatalık; yapmak
dava, davet${seçenek}içeri
s )# argümanın değerini yazdır
Eko“Onu sev $OPTARG Programlama”
;;
\? )
#yazdırma seçeneği hatası
EkoGeçersiz seçenek: $OPTARG1> &2
;;
: )
#print bağımsız değişken hatası
EkoGeçersiz seçenek: $OPTARG bir argüman gerektirir1> &2
;;
esac
tamamlamak

Yalnızca -p seçeneğini ve -t seçeneğini kullanarak betiği -p seçeneği ve ‘bash’ bağımsız değişken değeriyle çalıştırın.

$ ezmek getopts2.sh -Pezmek
$ ezmek getopts2.sh -P
$ ezmek getopts2.sh -T

Üretmek:

Örnek 3: Seçeneği birden çok bağımsız değişkenle kullanma

Bu örnek, getopts komutunun birden çok bağımsız değişkenle kullanımını gösterir. Komut dosyasını test etmek için, aşağıdaki kodla grtopts3.sh adlı bir bash komut dosyası oluşturun. Komut satırından virgülle ayrılmış argüman değerleri betiğe göre sağlanacaktır.

Burada ‘-f’ seçeneği ve IFS değişkeni argümanları bölümlemek için kullanılır ve $number dizisinde saklanır. Virgülle ayrılmış bağımsız değişkenler sağlayacaksa, toplam bağımsız değişken sayısını yazdıracaktır. İki seçenek bunu destekler. ‘-a’ seçeneği argümanları sağlayacaksa, argüman değerlerinin toplamı hesaplanacak ve yazdırılacaktır. Argüman değerlerinin çıktısı, ‘-m’ seçeneği argümanları sağlıyorsa hesaplanacak ve yazdırılacaktır.

#! / kutu / bash
Süregetopts“Ş:” Salatalık; yapmak
atama-F; IFS=“,”
sayı=(2 dolar)
EkoToplam bağımsız değişken sayısı = {# sayı[@]}

dava, davet$ seçiçeri
a )çözüm=0
için Kahve içeri${sayı[@]}; yapmak
((çözüm=$ sonuç+bin dolar))
tamamlamak
EkoTüm bağımsız değişkenlerin toplamı = $ sonuç;;

M )çözüm=1
için Kahve içeri${sayı[@]}; yapmak
((çözüm=$ sonuç*bin dolar))
tamamlamak
EkoTüm bağımsız değişkenleri ikiye katlayın = $ sonuç;;
*)Eko“geçersiz seçenek veya bağımsız değişken”
çıkış1
esac
tamamlamak

Komut dosyalarını “-a” seçeneği ve üç bağımsız değişkenle, “-m” seçeneği ve üç bağımsız değişkenle ve “-t” seçeneğiyle herhangi bir bağımsız değişken olmadan çalıştırın.

$ ezmek getopts3.sh -a3Ve2Ve5
$ ezmek getopts3.sh M3Ve2Ve5
$ ezmek getopts3.sh -T

Üretmek:

Örnek 4: Birden fazla seçenek ve bağımsız değişken kullanma

Bu örnek, getopts komutunun birden çok seçenek ve birden çok bağımsız değişkenle kullanımını gösterir. Örneği test etmek için aşağıdaki kodla ‘getopts4.sh’ adlı bir bash dosyası oluşturun. Burada iki seçenek, iki argümanla ayrı ayrı çalışacaktır. Seçeneklerden hiçbiri sağlanmazsa, bir hata mesajı yazdırılır.

#! / kutu / bash
Süregetoptsn: ben: Salatalık; yapmak
dava, davet$ seçiçeri
n)
# İlk argümanı oku
Eko“öğrenci adı $OPTARG> &2
;;
M)
# İkinci argümanı oku
Ekove işaretler $OPTARG> &2
;;
*)
# Bir hata mesajı yazdır
EkoGeçersiz seçenek veya bağımsız değişken $OPTARG
;;
esac
tamamlamak

Komut dosyası “-n” seçeneğiyle “Ella” ve “-m” seçeneğiyle 85 ile çalıştırıldığında, her iki durum ifadesi de doğru olur ve iki çıktı yazdırır. Komut dosyası “-n” seçeneği kullanılarak yalnızca “Ella” ile çalıştırıldığında, yalnızca bir case ifadesi doğru olur ve çıktıyı yazdırır. Komut dosyası ‘-p’ seçeneği ile çalıştırıldığında bir hata mesajı yazdırılacaktır.

$ ezmek getopts4.sh -n Ela M85
$ ezmek getopts4.sh -n Ela
$ ezmek getopts4.sh -P Ela

çözüm

Getopts komutunun temel kullanımları, yukarıdaki örnekler kullanılarak bu eğitimde gösterilmektedir. Umuyoruz ki, bu öğreticiyi izledikten sonra, bash betiğinizde komut satırı seçeneklerini ve bağımsız değişkenleri kullanabileceksiniz.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir