Belge

Bash: Bash betiğinde argümanlar nasıl iletilir

Bash komut dosyası oluşturma, Unix benzeri sistemlerdeki görevleri otomatikleştirmek için güçlü bir araçtır.  Bash komut dosyası oluşturmanın temel yönlerinden biri komut satırı argümanlarını ve seçeneklerini yönetmektir.  Bunlar, komut dosyalarının daha esnek ve etkileşimli olmasını sağlayarak kullanıcıların komut dosyasına belirli talimatları veya verileri aktarmasına olanak tanır.  Bu makale, Bash’te yeni başlayanlardan ileri düzey kullanıcılara kadar çeşitli kitlelere uygun argüman ve seçenek işlemenin temellerinden daha gelişmiş tekniklerine kadar size rehberlik etmeyi amaçlamaktadır.

Komut Satırı Bağımsız Değişkenlerini Anlamak

Karmaşık komut dosyalarına dalmadan önce, Bash komut dosyalarında komut satırı argümanlarının nasıl iletildiği ve bunlara nasıl erişildiğinin temellerini anlamak önemlidir.  Bu bölümde bu bağımsız değişkenlere erişmenin ve bunları kullanmanın basit yolları anlatılmaktadır.

  1. Temel Konumsal Parametreler: Konumsal parametreler kullanılarak betiğe aktarılan argümanlara erişim.
    #!/bin/bash
    echo "Script Name: $0"
    echo "First Argument: $1"
    echo "Second Argument: $2"
  • Bu örnekte, “$0”, betiğin adını temsil eder ve “$1”, “$2” vb., betiğe iletilen bağımsız değişkenleri temsil eder.

     

  • Çoklu Argümanları İşleme: Birden fazla argümanı işlemek için bir döngü kullanmak.
    #!/bin/bash
    for arg in "$@"
    do
        echo "Argument: $arg"
    done
  • Bu komut dosyası, kendisine iletilen her argümanın üzerinden geçerek çıktısını alacaktır.  Tüm argümanlara bir liste halinde erişmek için `$@` kullanımını gösterir.

     

  • Özel Değişkenleri Kullanma: `$#`, `$*` ve `$?` gibi özel değişkenleri keşfetme.
    #!/bin/bash
    echo "Number of arguments: $#"
    echo "All arguments: $*"
    echo "Exit status of last command: $?"
  • Bu komut dosyası özel değişkenlerin nasıl kullanılacağını gösterir: bağımsız değişken sayısı için “$#”, tek bir dize olarak tüm bağımsız değişkenler için “$*” ve son yürütülen komutun çıkış durumu için “$?”.

     

  • Shift ile Gelişmiş Argüman İşleme: Argümanları sırayla işlemek için ‘shift’ komutunun kullanılması.
    #!/bin/bash
    while [ "$#" -gt 0 ]; do
        echo "Processing parameter: $1"
        shift
    done
  • Bu örnek, betiğe iletilen her bağımsız değişkeni sırayla işlemek için “shift” komutunun kullanımını gösterir.

     

  • Temel getopts Kullanımı: ‘Getopts’ ile ayrıştırma seçenekleri.
    #!/bin/bash
    while getopts "ab:" opt; do
      case $opt in
        a) echo "Option -a was triggered." ;;
        b) echo "Option -b was triggered, Argument: $OPTARG" ;;
      esac
    done
  • Bu komut dosyası, ‘-a’ ve ‘-b’ seçeneklerini ayrıştırmak için ‘getopts’u kullanır; burada ‘-b’ ilişkili bir değer gerektirir.

     

  • Uzun Seçenekli gelişmiş getopt’lar: ‘Getopts’ kullanarak hem kısa hem de uzun seçeneklerin kullanılması.
    #!/bin/bash
    while getopts "ab:-:" opt; do
      case $opt in
        a) echo "Alpha mode active" ;;
        b) echo "Beta mode set to '$OPTARG'" ;;
        -)
          case "${OPTARG}" in
            help) echo "Help option selected." ;;
            *) echo "Unknown option --${OPTARG}" ;;
          esac
        ;;
      esac
    done
  1. Bu daha karmaşık komut dosyası, getopts’un işlevselliğini ‘–help’ gibi uzun seçenekleri yönetecek şekilde genişletir.

     

 

 

 

Yazının orijinalini buradan okuyabilirsiniz.