Bu siteyi kullanarak Gizlilik Politikası'nı ve Kullanım Şartları'nı kabul etmiş olursunuz.
Kabul et
Teknoloji Linux Windows Apple Google
  • En İyi Kodi Eklentileri
  • MadVR Ayarları
  • PotPlayer Ayarları
  • En İyi 65 İnç TV’ler
  • WordPress 6.0
Bildirim
  • ANASAYFA
  • TEKNOLOJİ
  • YAZILIM
  • LİNUX
  • WİNDOWS
Kişiselleştir
Teknoloji Linux Windows Apple GoogleTeknoloji Linux Windows Apple Google
Yazı Tipi Yeniden BoyutlandırıcıAa
  • Sinema TV
  • Netfjix
  • İncelemeler
  • Sinema Haber
  • TV Haber
Arama
  • ANASAYFA
  • TEKNOLOJİ
    • Android
    • Apple
    • İnternet
    • iPhone
    • Mobil
    • Samsung
  • YAZILIM
    • Güvenlik
    • Programlama Dili
    • Web Tasarım
    • Sunucu
    • WordPress
  • LİNUX
    • Arch Linux
    • Fedora
    • Debian
    • Linux Mint
    • Ubuntu
  • WİNDOWS

Öne Çıkan Hikayeler

En güncel haberleri keşfedin!

Apple iOS 26.3 Beta 3 Sürümünü Yayınladı: İşte Dikkat Çeken Yenilikler

Windows 11 Güncellemesi Eski Modemleri Sessizce Devre Dışı Bıraktı: İşte Sebebi!

CachyOS Ocak 2026 Sürümü Yayınlandı: Yeni Plasma Giriş Yöneticisi Geldi

Bağlantıda Kalın

Bizi sosyal medyada bulun
248.1KTakipçilerBeğen
61.1KTakipçilerTakip et
165KAbonelerAbone ol
Made by ThemeRuby using the Foxiz theme. Powered by WordPress

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

Linux

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

Murat
Son güncelleme: Mayıs 29, 2022 9:47 pm
Hazırlayan: Murat
Yorum yapılmamış
Paylaş
Paylaş

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.

İçindekiler
  • Bu klavuz’da şunları öğreneceksiniz:
    • Bash Komut Dosyası: Kullanımı bağımsız değişkenlerle işaretler örneği
      • Komut dosyamızı test etme
    • $OPTIND değişkeni
  • Kapanış

Ö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.

#!/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:

./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.

Toplam Görüntülenme: 0
ETİKETLER:bASHLinux
Bu Makaleyi Paylaş
Facebook Bağlantıyı kopyala Yazdır
Hazırlayan:Murat
Takip et:
Murhas ve Begza.com'un Kurucusu. Linux kullanıcısı ve açık kaynak destekçisi. Telegram, Twitter, LinkedIn üzerinden bağlantı kurun veya Sorularınız için e-posta gönderin.
Yorum yapılmamış Yorum yapılmamış

Bir yanıt yazın Yanıtı iptal et

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

📚 İlgili Yazılar

Gönderiyle ilgili makaleleri keşfedin!
Linux

2026 Yılında Olmazsa Olmazım Haline Gelen Linux Uygulamaları

Linux

HP Linux Sürücüleri Artık Linux Mint 20.3 ve elementary OS 6.1’i Destekliyor

LinuxYazılım

Linux için En İyi KDE Multimedya Uygulamaları

Debian

Debian Üzerinde LEMP Yığını (Nginx, MariaDB, PHP) Kurulumu: Tam Kılavuz

Linux Mint

Linux Mint 21 Artık Kullanılabilir

Debian

Ubuntu Alternatifi Deneyebileceğiniz En İyi 7 Debian Tabanlı Dağıtım

Yazılım

Raspberry Pi üzerine Docker kurmak

Linux

Eski Dizüstü Bilgisayarlar İçin En İyi Linux Dağıtımları

Daha fazla göster

Murhas, dijital dünyanın nabzını tutan, Linux altyapılarından siber güvenliğe kadar teknolojinin her alanında derinlemesine rehberler sunan bir teknoloji platformudur. Amacımız, karmaşık teknolojik dönüşümleri anlaşılır kılarak işletmelere ve teknoloji meraklılarına geleceğin dünyasında rehberlik etmektir. Teknolojiyi keşfedin, geleceği Murhas ile şekillendirin.

 
 

 

  • Kategoriler:
  • Hakkımızda
  • Gizlilik Politikası
  • Kullanım Koşulları
  • İletişim
  • Sorumluluk Reddi

Hızlı Bağlantılar

  • Sinema TV
  • Netfjix
  • İncelemeler
  • Sinema Haber
  • TV Haber

Popüler İçerikler

  • En İyi Kodi Eklentileri
  • MadVR Ayarları
  • PotPlayer Ayarları
  • En İyi 65 İnç TV’ler
  • WordPress 6.0

© 2026 Murhas. Tüm Hakları Saklıdır.

adbanner
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi kaybettiniz?