Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)
Özel değişkenleri ve 'getopts'i kullanarak betiklerinize bağımsız değişken aktarmayı ve komut satırı seçeneklerini ayrıştırmayı öğrenin.
Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts), CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Betik Bağımsız Değişkenleri: Neden Kullanılır?
Hiç ls -l veya cp file1 file2 gibi bir komut kullandınız mı? -l, file1 ve file2 ifadelerinin tümü bağımsız değişkendir! Bunlar komuta ne yapacağını veya ne üzerinde işlem gerçekleştireceğini söyler.
Bash betiklerinde bağımsız değişkenler betiklerinizi esnek hâle getirir. Değerleri doğrudan betiğe sabitlemek yerine betiğiniz, çalıştırıldığında girdiyi doğrudan komut satırından kabul edebilir.
Konumsal Bağımsız Değişkenlere Erişme
Bir betiği bağımsız değişkenlerle çalıştırdığınızda Bash, bunları otomatik olarak konumsal parametreler adı verilen özel değişkenlere atar.
- İlk bağımsız değişken
$1olur. - İkinci bağımsız değişken
$2olur. - Bu şekilde
$9'a kadar devam eder.
9'dan sonraki bağımsız değişkenler için ${10}, ${11} gibi süslü parantezleri kullanırsınız. Bu değişkenler, betiğinize aktarılan değerleri tutar.
Gösterim: Konumsal Bağımsız Değişkenler
Bir betikte bu bağımsız değişkenlere nasıl erişileceğini görelim. Bunu greet.sh adıyla kaydedin ve ./greet.sh Alice Bob ile çalıştırın.
#!/bin/bash
echo "Hello, $1!"
echo "Welcome, $2."
echo "The third argument (if any) is: $3"`$0` ve `$#`: Betik Bilgileri
Bash, betiğin kendisi ve bağımsız değişkenleri hakkında bilgi sağlayan birkaç özel değişken daha sunar:
$0: Çalıştırılan betiğin adını tutar. Hata iletileri veya günlük kaydı için kullanışlıdır.$#: Betiğe aktarılan toplam konumsal bağımsız değişken sayısını içerir.
Bunlar betiklerinizi daha sağlam ve kullanıcı dostu hâle getirmenize yardımcı olur.
Gösterim: `$0` ve `$#`
Bu betiği farklı sayılarda bağımsız değişkenle, örneğin ./info.sh one two three ile veya yalnızca ./info.sh ile çalıştırın.
#!/bin/bash
echo "Script name: $0"
echo "Number of arguments received: $#"`$@` ve `$*` Karşılaştırması: Tüm Bağımsız Değişkenler
Bazen tüm bağımsız değişkenlere aynı anda başvurmanız gerekir. Bash bunun için iki yol sunar:
$@: Ayrı bağımsız değişkenlere genişler. Çift tırnak içine alındığında ("$@"), boşluk içerse bile her bağımsız değişken ayrı bir sözcük olarak kalır. Döngüler için genellikle bu yöntem tercih edilir.$*: Tüm bağımsız değişkenlerin tek bir dizesine genişler. Çift tırnak içine alındığında ("$*"), tüm bağımsız değişkenlerIFS'nin (İç Alan Ayırıcı, genellikle boşluk) ilk karakteriyle ayrılarak tek bir sözcükte birleştirilir.
Boşlukları korumak için bağımsız değişkenler üzerinde yineleme yaparken her zaman "$@" kullanın!
Gösterim: `"$@"` ile Döngü Oluşturma
Bu betik, "$@" ifadesinin boşluk içeren bağımsız değişkenleri doğru şekilde nasıl işlediğini gösterir. Betiği şu şekilde çalıştırın: ./loop_args.sh hello "world wide" web
#!/bin/bash
echo "Processing arguments with \"$@\":"
for arg in "$@"; do
echo " Argument: [$arg]"
done
echo "\nProcessing arguments with \"$*\":"
for arg in "$*"; do
echo " Argument: [$arg]"
doneSeçenekler: Konumsal Bağımsız Değişkenlerin Ötesi
Konumsal bağımsız değişkenler basit durumlar için kullanışlıdır; ancak betiğinizin -v ile ayrıntılı çıktı veya -f filename gibi isteğe bağlı bayraklara ya da adlandırılmış parametrelere ihtiyacı varsa ne olur?
İşte bu noktada komut satırı seçenekleri devreye girer. Kullanıcıların ayarları istedikleri sırayla belirtmesine olanak tanıyarak betikleri daha esnek ve kullanıcı dostu hâle getirirler.
Bash, bu tür seçenekleri ayrıştırmak için özel olarak getopts komutunu sunar.
`getopts` Sözdizimi: `optstring`
getopts için temel sözdizimi şöyledir: getopts optstring variable.
optstring: Geçerli seçenek karakterlerinden oluşan bir dizedir. Bir seçenek bağımsız değişken gerektiriyorsa (örneğin-f filename), karakterin ardından iki nokta koyun (örneğinf:).variable:getopts'un o anda işlenen seçenek karakterini (örneğinopt) depolayacağı değişken adıdır.
getopts ayrıca seçenek bağımsız değişkenleri için OPTARG'yi, sonraki bağımsız değişken dizini için OPTIND'i ayarlar.
Gösterim: Temel `getopts`
Bu betik -v (ayrıntılı çıktı) ve -f (dosya) seçeneklerini işler. Şunları çalıştırmayı deneyin: ./options.sh -v -f mydata.txt -x veya ./options.sh -vf mydata.txt
#!/bin/bash
while getopts "vf:" opt; do
case $opt in
v)
echo "Verbose mode enabled."
;;
f)
echo "File specified: $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
doneHızlı Denetim: Bağımsız Değişken Değişkenleri
Aşağıdaki betiği ve nasıl çalıştırıldığını inceleyin:
#!/bin/bash
echo "Script: $0"
echo "Count: $#"
for arg in "$@"; do
echo "Arg: $arg"
doneŞu şekilde çalıştırırsanız: ./myscript.sh "Hello World" 123
Çıktı ne olur?
Özet: Bağımsız Değişkenler ve Seçenekler
Harika iş çıkardınız! Bash betiklerinizi çok daha işlevsel hâle getirmeyi öğrendiniz:
- Konumsal Bağımsız Değişkenler: Bağımsız değişkenlere doğrudan erişmek için
$1,$2vb. kullanın. - Özel Değişkenler: Betik adı için
$0, bağımsız değişken sayısı için$#ve tüm bağımsız değişkenler üzerinde güvenli şekilde yineleme yapmak için"$@"kullanın. - Komut Satırı Seçenekleri: Adlandırılmış seçenekleri (örneğin
-v) ve bunların bağımsız değişkenlerini (-f filename) ayrıştırmak içingetoptskullanın; böylece betikleriniz daha sağlam ve kullanıcı dostu olur.
Güçlü ve esnek komut satırı araçları geliştirmek için bunları kendi betiklerinizde kullanma pratiği yapın!
Sıkça Sorulan Sorular
“Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)” dersi ücretsiz mi?
Evet — “Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)” dersinde ne öğreneceğim?
Özel değişkenleri ve 'getopts'i kullanarak betiklerinize bağımsız değişken aktarmayı ve komut satırı seçeneklerini ayrıştırmayı öğrenin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Döngü Yapıları (for, while)
- Bash Betiklerinde İşlevler
- Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)
- case İfadesi ve Örüntü Eşleştirme