İçindekiler
Bash'de, örneğin tüm programlarda ortak olan işlevleri ayırmak da iyidir, bunlar daha sonra başka programlar tarafından kullanılmak üzere tek bir kitaplık kümesinde tutulabilir.Bu örnekte, fonksiyonlarımızı koyacağımız bir kütüphane dosyası ve bu dosyayı kullanan bir tane daha oluşturacağız. Hatırlanması gereken şey, mutlak yolları kullanmaktır.
Bunun için kütüphane dosyamızı oluşturacağız, kullanımı için stratejik bir yerde bulunacak kütüphane dosyamızın /usr/local/bin içinde dosyamızın adı libreriaBash.sh olacak.
Gedit gibi bir metin düzenleyici ile veya nano veya vi gibi basit bir komut düzenleyici ile uzmansanız, açarız veya oluştururuz. İçinde aşağıdaki kodu yapabiliriz
#! / bin / bash # Kitaplıklar dosyası # Burada isterseniz değişkenleri bildirebilirsiniz. #Sistem tarih ve saat işlevini şimdi göster {yerel timeNow yerel ret timeNow = $ (tarih + "% d /% m /% Y% H:% M:% S.% s") ret = $? echo $ timeNow} #Bilgisayarı x zamanında kapat işlev kapatma {echo "Kapatma süresi (dk):" okuma süresi sudo kapatma -h $ zaman} #Bir uygulamayı kaldırın, parametre tarafından geçirilir ve kök kullanıcı işlevinin kaldırılmasını gerektirir {sudo apt-get remove $ application} #scrot kurulu ise ekran görüntüleri alabiliriz fonksiyon ekran görüntüleri {scrot -e 'mv $ f ~ / Images / scrot / `date +% d-% m-% y_% H:% M: % S`_capture.png.webp '}
Değişkenleri fonksiyona yerel olarak bildiririz, bunu yapmazsak isimle eşleşen değişkenler fonksiyondan etkilenecektir ve bunun tersi de geçerlidir.
Kütüphane dosyamızı yaptıktan sonra, yürütme özniteliklerine sahip olması gerektiğini unutmadan, o kütüphaneyi kullanacak programımızı oluşturacağız.
Şimdi test2.sh dosyamızın içeriğini görelim
#! / bin / bash # file test2.sh #kütüphaneleri dahil et ./usr/local/bin/libreriaBash.sh mytime = $ (şimdi) echo "kütüphane işlevi çıktısı örneği: $ mytime" echo "kütüphane işlevinden iki örnek çıktı: $ (şimdi) "
Ayrıca fonksiyonların bir değişkene geçirilmeden de kullanılabileceğini gözlemliyoruz.
Programımıza dahil etmek için bir bash çağırmak ile başka bir bash içinde bir bash yürütmek arasında çok az fark olduğunu unutmayın.
#! / bin / bash # test2.sh dosyası # /usr/local/bin/libreriaBash.sh kitaplıklarını içerir
Söylediğimiz şey dosyayı çalıştırmak
şimdi ./test2.sh dosyasını çalıştırabiliriz
Böylece başka komut dosyaları oluşturabilir ve daha önce oluşturulmuş kitaplıklara işlevler ekleyebiliriz, örneğin, yeni bir komut dosyasından kitaplıklarda zaten sahip olduğumuz ekranları yakalamak için işlevi çağırabiliriz images.sh
#! / bin / bash # .sh dosyası #./usr/local/bin/libreriaBash.sh yakalanan kitaplıkları içerir
Bash betiğinin başka bir örneği çoklu indirmeyi içerdiğinden ancak bir metin dosyasını parametre olarak ilettiğinden seçenekler çoktur.
#! / bin / bash ## wget'i çağırın ve belirttiklerimizi indirin ## dediğimiz hızla ve clear olmasını istediğimiz klasörde echo "Bir metin dosyası girebilirsiniz" echo "şöyle adreslerle: '-i file .txt '"uyku 2 yankı -n" İndirme adresini girin: "indirme uykusunu oku 1 yankı" Hedef, PC'nizde mevcut bir klasör olmalıdır "echo -n" Hedef Klasörünü Girin: "okuma hedefi uyku 1 yankı "Hız kb veya mb cinsindendir Örn: 50k 1m" echo "veya sınırsız için 0 (sıfır) girin" echo -n "İndirme Hızını Girin:" okuma hızı uyku 1 wget -c --limit-rate = $ speed -P $ hedef $ dosya indirme = `taban adı $ indirme` saat = $ (tarih +% H:% M:% S) echo" $ dosyasının indirilmesini $ hedefinde $ saatte tamamladı "] uyku 3
Bunun avantajı, tüm kodu tekrar girmek zorunda kalmadan dosyalar, dizinler, sunucularla çalışmak, programları yüklemek veya kaldırmak, kaynakları izlemek veya tekrarlayan görevleri gerçekleştirmek için birden fazla kitaplığa sahip olabilmemizdir.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.