TR | EN | DE | Our Site

Bash Scripting Yazma

 Bash Scripting

Bash Scripting'e Giriş

Bash (Bourne Again SHell), Unix benzeri ortamlarda görevleri otomatikleştirmek ve sistem işlemlerini yönetmek için kullanılan güçlü bir betik dilidir. Bash betiği, kabuğun sırayla yürütebileceği bir dizi komut içeren bir metin dosyasıdır. Bash betikleri, tekrarlayan görevleri otomatikleştirmek, sistem yapılandırmalarını yönetmek ve toplu işleme gerçekleştirmek için kullanışlıdır.

Bash Scripting'in Temel Özellikleri

  • Otomasyon : Zamandan ve emekten tasarruf etmek için rutin görevleri otomatikleştirin.
  • Kontrol Yapıları : Yürütme akışını kontrol etmek için ve döngüleri gibi koşullu ifadeleri kullanın. ' if' 'elif' 'else' 'for'  'while'.
  • Değişkenler : Komut dosyalarında kullanılmak üzere verileri depolar.
  • İşlevler : Yeniden kullanılabilir kod blokları oluşturun.
  • Giriş/Çıkış : Kullanıcının girişini kullanarak okuyun ve metni kullanarak çıkış yapın 'read '  ' echo ' .

Temel Sözdizimi

Shebang

Her Bash betiği , sisteme betiği Bash yorumlayıcısını kullanarak yürütmesini söyleyen bir shebang ( ) ile başlar , 
#!/bin/bash ' .

#!/bin/bash echo "Hello, World!"

Bir Komut Dosyası Oluşturma ve Çalıştırma

  1. Yeni bir dosya oluştur :

    nano myscript.sh
  2. Komutlarınızı ekleyin :

    #!/bin/bash echo "This is my first script!"
  3. Komut dosyasını çalıştırılabilir hale getirin :

    chmod +x myscript.sh
  4. Komut dosyasını çalıştırın :

    ./myscript.sh

Değişkenler

Bash'deki değişkenler herhangi bir tür bildirimi olmadan basitçe bir değer atayarak oluşturulur. Değişken değerlerini görüntülemek için komutu kullanın  'echo' 

#!/bin/bash name="Alice" echo "Hello, $name!"

Giriş ve Çıkış

Komutu kullanarak kullanıcı girdisini okuyabilir ve kullanarak metin çıktısı alabilirsiniz . 'read'  'echo'

#!/bin/bash echo "Enter your name:" read user_name echo "Welcome, $user_name!"

Kontrol Yapıları

Koşullu İfadeler

Bash , , , ve gibi çeşitli koşullu ifade türlerini desteklerifelifelse.

Örnek: If Deyimi


#!/bin/bash echo "Enter a number:" read number if [ $number -gt 10 ]; then echo "The number is greater than 10." else echo "The number is 10 or less." fi

Vaka Açıklamaları

Bir ifade, bir değişkenin değerine bağlı olarak farklı komutları çalıştırmanıza olanak tanır. ' case '

#!/bin/bash echo "Choose an option (1 or 2):" read choice case $choice in 1) echo "You chose option 1." ;; 2) echo "You chose option 2." ;; *) echo "Invalid option." ;; esac

Döngüler

Döngü için

Döngüler komutların tekrarlı yürütülmesini sağlar. En yaygın iki tür döngüler ve döngülerdir. ' for ',  ' while '


#!/bin/bash for i in {1..5}; do echo "Welcome $i times" done

While Döngüsü

Belirtilen bir koşul yanlış olana kadar bir döngü devam eder    ' while'.

#!/bin/bash count=1 while [ $count -le 5 ]; do echo "Count is $count" ((count++)) done

Fonksiyonlar

Bash'teki işlevler, komutları yeniden kullanmak üzere gruplandırmanıza olanak tanır.
#!/bin/bash function greet { echo "Hello, $1!" } greet "Bob"

Komut Satırı Argümanları

Bir betiği çalıştırırken ona argümanlar geçirebilirsiniz. Bu argümanlara betik içinde özel değişkenler kullanılarak erişilebilir.

#!/bin/bash echo "Total number of arguments: $#" echo "User name: $1" echo "User age: $2" echo "Full name: $3"
Komut dosyasını şu argümanlarla çalıştırın:

$ bash script.sh Jim 30 "Linux Enthusiast"
Çıktı:
metin
Total number of arguments: 3 User name: Jim User age: 30 Full name: Linux Enthusiast

Diziler

Bash, tek bir değişkende birden fazla değer saklayabilen dizileri destekler.

#!/bin/bash fruits=("apple" "banana" "cherry") for fruit in "${fruits[@]}"; do echo "$fruit" done

Dosya İşlemleri

Varlık kontrolü, dosyalardan okuma, dosyalara yazma gibi çeşitli dosya işlemlerini gerçekleştirebilirsiniz.

Örnek: Bir Dosyanın Varlığını Kontrol Etme


#!/bin/bash file="example.txt" if [ -e "$file" ]; then echo "$file exists." else echo "$file does not exist." fi

Bash Betikleme de  Kullanım Alanına Göre Örnekler

Elbette! Bash'in tüm gücünden yararlanmanıza yardımcı olabilecek gelişmiş kavramları, en iyi uygulamaları ve ek örnekleri keşfederek Bash betiklemeyi daha derinlemesine inceleyelim. 
  • Hata İşleme
  • Hata Ayıklama Teknikleri
  • Komut Satırı Bağımsız Değişkenlerini Kullanma
  • Harici Komutlarla Çalışma
  • Komut Dosyası Yazma En İyi Uygulamaları
  • Gelişmiş Örnekler

Bash Scriptlerinde Hata İşleme

Hata işleme, beklenmeyen durumları zarif bir şekilde ele alabilen sağlam betikler oluşturmak için kritik öneme sahiptir. Bash'te, son yürütülen komutun çıkış kodunu döndüren kullanarak komutların çıkış durumunu kontrol edebilirsiniz .

' $?  '

Hata İşleme Örneği


#!/bin/bash cp source.txt destination.txt if [ $? -ne 0 ]; then echo "Error: File copy failed." exit 1 fi echo "File copied successfully."
Bu örnekte, komut başarısız olursa (sıfırdan farklı bir çıkış durumu döndürürse), bir hata mesajı yazdırılır ve betik 1 durumuyla çıkar.

  ' cp  '

Hata Ayıklama Teknikleri

Hata ayıklama, betiklemenin önemli bir parçasıdır. Her komutu yürütülmeden önce yazdıran hata ayıklama modunu etkinleştirme seçeneğini kullanabilirsiniz .

  ' -x  '

Hata Ayıklama Örneği


#!/bin/bash -x echo "Starting script..." mkdir new_directory cd new_directory touch file.txt echo "Script completed."
Bu betiği hata ayıklama etkinleştirilmiş halde çalıştırmak, her komutu yürütülürken göstererek, işlerin nerede yanlış gidebileceğini belirlemenize yardımcı olur.

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

Bash betikleri komut satırı argümanlarını kabul edebilir ve betiği yürütürken veri geçirmenize olanak tanır. Bu argümanlara , vb. kullanılarak erişilir ve toplam argüman sayısını verir.

 ' $1 ' ' $2 '  ' $# '

Komut Satırı Argümanlarına Örnek


#!/bin/bash if [ $# -ne 2 ]; then echo "Usage: $0 <arg1> <arg2>" exit 1 fi echo "Argument 1: $1" echo "Argument 2: $2"
Bu betiği aşağıdaki şekilde çalıştırabilirsiniz:

./myscript.sh Hello World
Çıktı:
metin
Argument 1: Hello Argument 2: World

Harici Komutlarla Çalışma

Bash betikleri karmaşık görevleri gerçekleştirmek için harici komutları ve yardımcı programları kullanabilir. Bir komutun çıktısını, backtick ( ) veya ile komut ikamesi kullanarak yakalayabilirsiniz .

 ` $(....) '

Harici Komutların Kullanımına Örnek


#!/bin/bash current_date=$(date) echo "Today's date is: $current_date" file_count=$(ls | wc -l) echo "There are $file_count files in the current directory."
Bu örnekte ve komutlarının çıktısını alıp betiğimizde kullanıyoruz.

 ' date ', ' ls ' | ' wc-l '

Komut Dosyası Yazma En İyi Uygulamaları

Temiz, bakımı kolay ve verimli Bash betikleri yazmak için aşağıdaki uygulamaları göz önünde bulundurun:

1. Anlamlı Değişken Adları Kullanın

Komut dosyanızın daha kolay okunmasını sağlamak için değişkenleriniz için açıklayıcı isimler seçin.

#!/bin/bash backup_directory="/path/to/backup"

2. Kodunuzu Yorumlayın

Karmaşık mantığı veya betiğinizin önemli bölümlerini açıklamak için yorumlar ekleyin.

#!/bin/bash # Create a backup directory if it doesn't exist if [ ! -d "$backup_directory" ]; then mkdir "$backup_directory" fi

3. Alıntılamayı Akıllıca Kullanın

Kelime bölme ve birleştirme sorunlarını önlemek için değişkenleri her zaman tırnak işaretiyle belirtin.

echo "File path: $file_path"

4. Uygun Durum Kodlarıyla Çıkış Yapın

Başarıyı veya başarısızlığı belirtmek için anlamlı çıkış durumları kullanın.

exit 0 # Success exit 1 # General error exit 2 # Misuse of shell builtins (e.g., syntax error)

5. Kullanıcı Girişini Doğrulayın

Beklenmeyen davranışları veya hataları önlemek için kullanıcı girdisini her zaman doğrulayın.

read -p "Enter your age: " age if ! [[ "$age" =~ ^[0-9]+$ ]]; then echo "Error: Age must be a number." exit 1 fi

Gelişmiş Örnekler

Örnek 1: Yedekleme Komut Dosyası

Bu betik belirtilen dizinin yedeğini oluşturur ve onu bir dosyaya sıkıştırır.. ' tar.gz '

#!/bin/bash # Variables for backup source and destination. source_directory="$1" backup_directory="$2" # Validate input. if [ ! -d "$source_directory" ]; then echo "Error: Source directory does not exist." exit 1 fi # Create backup. timestamp=$(date +"%Y%m%d_%H%M%S") backup_file="backup_${timestamp}.tar.gz" tar -czf "$backup_directory/$backup_file" "$source_directory" if [ $? -eq 0 ]; then echo "Backup created successfully: $backup_file" else echo "Error creating backup." exit 1 fi

Örnek 2: Günlük Döndürme Komut Dosyası

Bu betik, günlük dosyalarını yeniden adlandırarak ve yalnızca belirtilen sayıda son günlüğü tutarak döndürür.

#!/bin/bash log_file="/var/log/myapp.log" max_logs=5 # Rotate logs. if [ -f "$log_file" ]; then mv "$log_file" "${log_file}.$(date +'%Y%m%d_%H%M%S')" touch "$log_file" # Remove old logs if exceeding max_logs. ls "${log_file}."* | sort | head -n -"$max_logs" | xargs rm -f -- echo "Log rotation completed." else echo "Log file does not exist." fi

Çözüm

    Bash betikleme, Unix benzeri sistemlerle çalışan herkes için olmazsa olmaz bir beceridir. Kullanıcıların görevleri verimli bir şekilde otomatikleştirmesini ve sistem işlemlerini etkili bir şekilde yönetmesini sağlar. Değişkenler, kontrol yapıları, döngüler, işlevler, komut satırı argümanları ve dosya işleme gibi Bash betiklemenin temellerinde ustalaşarak sistemleri yönetmedeki üretkenliğinizi önemli ölçüde artırabilirsiniz    Bu genel bakış yalnızca bir başlangıç ​​noktası sağlar; Bash betiklemede daha fazla keşfedilebilecek birçok gelişmiş özellik ve teknik vardır. Pratik ve yaratıcılıkla, iş akışınızı düzene koymak ve karmaşık sistem yönetimi görevlerini ele almak için güçlü betikler yazabilirsiniz

Yorum Gönder

Daha yeni Daha eski

İletişim Formu