Bu siteyi kullanarak, Gizlilik Politikası ve Kullanım Koşulları'nı kabul etmiş olursunuz.
Kabul et
MurHasMurHas
  • ANASAYFA
  • TEKNOLOJİ
    • Android
    • Apple
    • İnternet
    • iPhone
    • Mobil
    • Samsung
  • SOSYAL MEDYA
  • OYUNLAR
  • YAZILIM
    • Güvenlik
    • Programlama Dili
    • Web Tasarım
    • Sunucu
    • WordPress
  • LİNUX
    • Arch Linux
    • Fedora
    • Debian
    • Linux Mint
    • Ubuntu
  • WİNDOWS
Okuma: Bash Komut: Kullanımı Argüman Örnekleriyle
Paylaş
Bildirim Daha fazla göster
Font ResizerAa
MurHasMurHas
Font ResizerAa
  • Sinema TV
  • Netfjix
  • İncelemeler
  • Sinema Haber
  • TV Haber
Search
  • ANASAYFA
  • TEKNOLOJİ
    • Android
    • Apple
    • İnternet
    • iPhone
    • Mobil
    • Samsung
  • SOSYAL MEDYA
  • OYUNLAR
  • YAZILIM
    • Güvenlik
    • Programlama Dili
    • Web Tasarım
    • Sunucu
    • WordPress
  • LİNUX
    • Arch Linux
    • Fedora
    • Debian
    • Linux Mint
    • Ubuntu
  • WİNDOWS
Mevcut bir hesabınız var mı? Kayıt ol
Bizi takip et

Ana Sayfa » Bash Komut: Kullanımı Argüman Örnekleriyle

Bash Komut: Kullanımı Argüman Örnekleriyle

Murat Murat Published Mart 11, 2022
Paylaş
7 Dak Okuma

Linux komut satırında herhangi bir deneyiminiz varsa, yürütmekte olduğumuz bir komutun davranışını değiştirmemize yardımcı olan komut bayraklarıyla karşılaşmış olmalısınız.

Makale Başlıkları
Bu klavuz’da şunları öğreneceksiniz:Bash Komut Dosyası: Kullanımı bağımsız değişkenlerle işaretler örneğiKomut dosyamızı test etme$OPTIND değişkeniKapanış

Örneğin, ls -l komutunu çalıştırırsak, komutun -l kısmı, argüman olarak ls‘ye ilettiğimiz bir bayraktır. Bu aynı işlevsellik, bir Bash betiğinde kullanılabilir ve betiği çalıştırırken, komut dosyasına bazı girdileri bayraklar aracılığıyla iletmemize izin verir.

Bir Bash betiğinin davranışını, tıpkı normalde komut satırı programlarında yaptığımız gibi, çalışma zamanı seçenekleri aracılığıyla değiştirmek çok faydalı olabilir. Bash kabuğu, bunu başarmanın standart bir yolu olan getopts yerleşik komutunu sağlar. Bu öğreticide, getopts yerleşikini kullanarak bir Bash betiği çalıştırırken bayrakların argüman olarak nasıl kullanılacağını göreceksiniz.

Bu klavuz’da şunları öğreneceksiniz:

  • Bayraklar aracılığıyla bir Bash betiğine argümanlar nasıl iletilir
  • getopts aracılığıyla bayrak girişi nasıl yapılır
KategoriGereksinimler, Kurallar veya Kullanılan Yazılım Sürümü
SistemHerhangi bir Linux dağıtımı
YazılımBash kabuğu (varsayılan olarak yüklenir)
DiğerKök olarak veya sudo komutu aracılığıyla Linux sisteminize ayrıcalıklı erişim.
Sözleşmeler# – verilen linux komutlarının, doğrudan bir kök kullanıcı olarak veya sudo komutu kullanılarak kök ayrıcalıklarıyla yürütülmesini gerektirir
$ – verilen linux komutlarının, ayrıcalıklı olmayan normal bir kullanıcı olarak yürütülmesini gerektirir

Bash Komut Dosyası: Kullanımı bağımsız değişkenlerle işaretler örneği

Bash betiğinde getopts kullanmanın temel bir örneğini inceleyelim. Burada pratikliği hedeflemiyoruz, sadece getopts‘un nasıl çalıştığını kolayca anlamanızı sağlayan basit bir komut dosyası.
Aşağıdaki komut dosyamızı -l, -h ve -a komut satırı seçeneklerini kabul edecek şekilde yapılandıracağız.

- Advertisement -
#!/bin/bash

while getopts 'lha:' OPTION; do
  case "$OPTION" in
    l)
      echo "murhas"
      ;;
    h)
      echo "you have supplied the -h option"
      ;;
    a)
      avalue="$OPTARG"
      echo "The value provided is $OPTARG"
      ;;
    ?)
      echo "script usage: $(basename \$0) [-l] [-h] [-a somevalue]" >&2
      exit 1
      ;;
  esac
done
shift "$(($OPTIND -1))"

Yukarıda sahip olduklarımızı analiz edelim. Her şeyden önce, getopts komutları bir süre döngüsü içinde kullanılmalıdır, böylece tüm seçenekler ayrıştırılır. Ardından getopts anahtar sözcüğünden hemen sonra, betiğimizin kabul edeceği olası seçenekleri tanımladık. Bunlar l, h ve son olarak a‘dır.

Bu son seçenekten sonraki kolon ne anlama geliyor? Bu, seçeneğin bir argüman gerektirdiğini getopts‘a söyleme şeklimizdir. Ayrıştırılan her seçenek $OPTION değişkeni içinde saklanırken, bir argüman mevcut olduğunda $OPTARG değişkeninin değeri olur.

Her seçenek, bir son ? mevcut olmayan bir seçenek sunulduğunda eşleştirilecek olan durum. Bu durumda, kullanıcıya doğru komut dosyası kullanımını tekrarlayacağız ve bir hata koduyla çıkacağız.

Komut dosyamızı test etme

İlk olarak, sadece yukarıda bahsettiğimiz durumu test etmek için mevcut olmayan bir seçenek sunan betiğimizi çağıracağız. Komut dosyasına yürütülebilir izinler verelim ve ardından onu çağıralım:

chmod +x test.sh && ./tesh.sh -c

Beklendiği gibi, bize sağlanan seçeneğin geçersiz olduğunu söyleyen bir mesaj ve ardından komut dosyasının nasıl kullanılacağına ilişkin talimatlar alacağız:

- Advertisement -
./test.sh: illegal option -- c
script usage: test.sh [-l] [-h] [-a somevalue]

Komut dosyası kullanım dizesi, kullanım hatası üzerine yazdırılacak şekilde ayarladığımız dize olsa da, yukarıdaki geçersiz seçenek mesajı getopts tarafından otomatik olarak oluşturulur ve seçeneklere bir : ile ön ek getirilerek devre dışı bırakılabilir. Şimdi betiği olması gerektiği gibi kullandığımızda ne olacağını görelim:

./test.sh -l
murhas

-ı seçeneğini kullandık ve komut dosyası ilgili durumda ayarladığımız dizeyi ekrana yazdırdı, -h seçeneğini sağlarsak bu da olur:

./test.sh -h
you have supplied the -h option

Şimdi betiği -a seçeneği ile çağırmayı deneyelim. Yukarıda belirtildiği gibi, bu seçenek bir argüman gerektirir ve ikincisi sağlanmazsa başarısız olur:

./test.sh -a
./test.sh: option requires an argument -- a
script usage: test.sh [-l] [-h] [-a somevalue]

Beklendiği gibi, komut dosyası bir hata mesajıyla yanıt verdi ve bize sağladığımız seçeneğin bir argüman gerektirdiğini hatırlattı:

./test.sh -a tux
The value provided is tux

Bu sefer komut dosyası hatasız yanıt verdi. Sağladığımız argümanın, tux’un nasıl yazdırıldığına dikkat edin, çünkü bu, $OPTARG değişkeninin değeri olur.

Getopts‘u kullanarak, betiğinizi başlattığınızda bayrakları birleştirerek aynı anda birden fazla seçenek sağlayabilirsiniz. Örneğin, betiklerimizi hem -l hem de -h seçenekleriyle çağırmaya çalıştığımızda ne olduğunu görelim:

./test.sh -lh
murhas
you have supplied the -h option

Gördüğümüz gibi, her iki seçenek de sağladığımız sırayla işlendi. Elbette seçenekler ayrı ayrı verilebilir ve -a seçeneğini de ekleyebiliriz, ancak her zaman gerekli argümanı eklemeyi unutmayın:

./test.sh -l -h -a tux_rulez
murhas
you have supplied the -h option
The value provided is tux_rulez

$OPTIND değişkeni

Yukarıda yazdığımız çok önemsiz komut dosyasına bir kez daha bakarsak, while döngüsünün sonunda başka bir talimat görürüz: shift $(($OPTIND -1)). Amacı nedir? Diyelim ki betiği şu şekilde adlandırıyoruz:

./test.sh -l -h -a hello world

Komut dosyası çağrıldığında, $OPTIND değişkeni 1’e ayarlanır ve bir seçenek her çözümlendiğinde, sonuncuya ulaşana kadar artırılır. Bu nedenle, bu durumda, -a seçeneğinin gerektirdiği zorunlu argüman olan hello olan son öğeye ulaştığında 5 değerine sahip olacaktır.

shift, komut dosyasının konum parametrelerini, kendisine pozitif bir sayı olarak sağlanan belirli sayıda konum aşağı hareket ettirerek ilgili bağımsız değişkenleri atan bir kabuk yerleşikidir.

Yukarıdaki betiği başlatma şeklimiz, son sağlanan argüman olan “world”, o noktada işini bitirmiş olan getopts tarafından ayrıştırılmaz.

Şimdi, konumsal parametrelerde $OPTIND - 1 (bu, ayrıştırılan seçeneklerin etkin sayısı, bu durumda 4) değerinde bir kaydırma yaparsak, bu durumda geriye yalnızca seçenek olmayan argümanlar kalır. Bu betikte daha sonra $* değişkenini kullanarak erişebileceğimiz

Kapanış

Bu klavuz’da bir Bash betiğine iletilen komut satırı argümanları olarak kullanılan bayrakların nasıl ayrıştırılacağını gördük. getopts Bash yerleşik yapısı, betiğimizin, bir Linux sisteminde varsayılan komutların çalıştığı gibi, aynı anda birden çok olsa bile komut bayraklarını kabul etmesine izin verir. Ayrıca, bu tür komut dosyasında kullanışlı olan ve ek girdileri işlememize izin veren $OPTIND yerleşikini de öğrendik.

Ne düşünüyorsun?
Love0
Sad0
Happy0
Sleepy0
Angry0
Dead0
Wink0
Yorum bırakın Yorum bırakın

Yorum bırakın Yanıtı iptal et

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

Lütfen bir derecelendirme seçin!

FacebookBeğen
TwitterTakip et
YoutubeAbone ol
TelegramTakip et

Haftalık Bülten

Yeni makalelerimizi almak için abone olun!

Kullanım Koşullarını okudum ve kabul ediyorum
Apple

Apple’ın Yan Kuruluşu Claris FileMaker 19.5’i Piyasaya Sürdü

Murat Murat Haziran 18, 2022
MIUI 14 Güncellemesini Alacak Cihazlar Belli Oldu
DxOMark en iyi ekrana sahip telefonları açıkladı!
Alma Linux 8’de Adminer MySQL Veritabanı Yönetim Aracı Kurulumu
Samsung Galaxy A23 ve Galaxy A13 Türkiye’de Piyasaya Sürüldü
Küresel Koronavirüs Vakaları

Onaylanmış

0

Death

0

Daha fazla bilgi: Covid-19 İstatistikleri

Fedora

Fedora 38, GNOME 44 ile Çıkış Yaptı

Murat Murat Nisan 20, 2023
Linux

Linux Kullanmanın Avantaj ve Dezavantajları?

Murat Murat Eylül 7, 2022
Linux MintYazılım

Linux Mint 21 LTS’de SMPlayer Kurulumu

Murat Murat Ağustos 22, 2022

Kategoriler

  • Oyunlar
  • Yazılım
  • Linux
  • Windows
  • Sosyal Medya
  • Teknoloji
  • Ubuntu
  • İnternet

Hakkımızda

80 milyonun sahibi olduğu ilk ve tek teknoloji ve bilgi ağıyız. Türkiye'nin teknoloji platformu.
Popüler İçerikler
  • En İyi Kodi Eklentileri
  • MadVR Ayarları
  • PotPlayer Ayarları
  • En İyi 65 İnç TV’ler
  • WordPress 6.0
Hızlı Linkler
  • Sinema TV
  • Netfjix
  • İncelemeler
  • Sinema Haber
  • TV Haber

Bültenimize Abone Olun

Ücretsiz üye olun ve yeni güncellemelerden haberdar olan ilk kişi olun.!

Kullanım Koşullarını okudum ve kabul ediyorum
© [2022] Murhas.Com. All Rights Reserved.
  • HAKKIMIZDA
  • İLETİŞİM
  • GİZLİLİK POLİTİKASI
  • KULLANIM KOŞULLARI
  • SORUMLULUK REDDİ
Welcome Back!

Sign in to your account

Şifrenizi mi kaybettiniz?