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: $OPTARG“1> &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