getopts seçenek-dizgesi [argümanlar]
getopts kabuk betikleri tarafından konumsal
parametreleri çözümlemekte kullanılır.
seçenek-dizgesi tanınan seçenek karakterlerini
içerir; bir karakterden sonra bir iki nokta üstüste karakteri geliyorsa
seçeneğin ondan bir boşlukla ayrılmış bir argümana sahip olduğu umulur.
: ve ? karakterleri seçenek
karakterleri olarak kullanılamaz. Her çağrılışında
getopts işlenecek sonraki argümanın indisini
OPTIND değişkenine ve isim
değişkenini de mevcut değilse ilklendirerek sonraki seçeneği
isim kabuk değişkenine yerleştirir.
OPTIND kabuğun ya da bir kabuk betiğinin her
çağrılışında 1 ile ilklendirilir. Bir seçenek bir argüman gerektirdiğinde
getopts argümanı OPTARG
değişkenine yerleştirir. Kabuk, OPTIND değişkenini
otomatik olarak sıfırlamaz; eğer kullanılacak parametrelerin yeni bir
kümesi varsa aynı kabuk çağrısı içinde getopts'a
yapılan çoklu çağrılar arasında elle sıfırlanmalıdır.
Seçeneklerin sonuna gelindiğinde, getopts
sıfırdan büyük bir çıkış durumu ile çıkar. OPTIND
ilk seçenek olmayan argümanın indisine ayarlanır ve
? karakteri isim'e
yerleştirilir.
getopts normalde konumsal parametreleri çözümlese de
argümanlar verilmişse bunları çözümler.
getopts hataları iki yolla raporlayabilir.
Eğer seçenek-dizgesi'nin ilk karakteri bir
: ise sessiz hata raporlaması
kullanılır. Geçersiz seçenekler veya eksik seçenekler saptandığında
normal işlem tanı iletileri basılır. OPTERR
değişkeninin değeri 0 ise seçenek-dizgesi'nin
ilk karakteri bir : olmasa bile hata iletileri
gösterilmez.
Geçersiz bir seçenek görüldüğünde, getopts
? karakterini isim'e
yerleştirir ve hata raporlaması sessiz değilse bir hata iletisi basar ve
OPTARG değişkenini kaldırır.
getopts sessiz hata raporlama kipinde ise
bulunan seçenek karakterleri OPTARG değişkenine
yerleştirilir ve hiçbir tanı iletisi basılmaz.
Eğer bir gerekli argüman bulunamazsa ve getopts
sessiz kipte değilse isim'e ?
karakteri yerleştirilir, OPTARG kaldırılır ve bir tanı
iletisi basılır. getopts sessiz kipte ise
isim'e : karakteri
yerleştirilir ve OPTARG'a bulunan seçenek karakteri
yerleştirilir.