Linux'ta bash ile programlama betiği

İçindekiler

Genellikle yönetim veya dosya yönetimi işlemleri için kullanmamıza rağmen, Linux konsolu işlevselliğini bu amacın çok ötesine genişleterek komut dosyalarını ihtiyaçlarımıza göre programlamamıza izin verir.
Temel olarak, sistemin belirli bir görev için kullandığı belirli bir programlama dilinde yazılmış kodları içeren bir dosya olduğunu söylüyoruz. Harici bir girişe veya grafik arayüze sahip olması gerekmez, ancak işlenmiş verilerin çıktısını alması gerekir.
Başlamak için bir metin düzenleyicimiz ve programlama isteğimiz olmalıdır. .sh uzantısıyla kaydettiğimiz dosyalar, ilk satır aşağıdaki gibi olduğu sürece konsol tarafından yürütülebilir (veya yorumlanabilir):
#! / bin / bash
Bu, sisteme dosyayı çalıştırmak için konsolu kullanmasını söyler. Ayrıca # karakteri yorum yazmanıza olanak tanır.
Birkaç örnek deneyeceğiz
downloads.sh adında bir dosya oluşturuyoruz
 #! / bin / bash # İndirilenler dizini alias downloads = '/ home / user / Downloads' adresiyle downloads adında bir takma ad oluşturalım

downloads.sh olarak kaydedin
'Bash komut dosyasını başlatmak için yürütme izinlerini verin. Bunu yapmak için komut terminalini yazın:
chmod u + x downloads.sh
Oluşturduğunuz her komut dosyası için bu komutu çalıştırmayı unutmayın.
Terminalde çalıştırarak 'komut dosyasını' başlatın
./downloads.sh
İşe yaradıysa, İndirilenler dizinine yerleştirilmelidir.
Komut dosyasında değişkenleri ve parametreleri kullanın
 #! / bin / bash # Değişkenleri kullanma # echo "İlk argümanınız" $ 1 echo "İkinci argümanınız" $ 2

Komut dosyasını çalıştırmanın yolu örneğin
./miScript.sh merhaba 4

Sonuç olmalıdır
İlk argümanınız merhaba
İkinci argümanınız 4
Yürütme sırasında değişkenlerin ve parametrelerin girilmesi nasıl mümkün kılınır?
 #! / bin / bash echo "Adınızı girin ve ENTER'a basın" #Değişken adını okuyun adı okuyun echo "Adınız $ name"

Girilen belirli bir kullanıcının hangi işlemleri yürüttüğünü bize söyleyen daha kullanışlı bir komut dosyası örneği
 #! / bin / bash RES = s #response, while [$ RES = s] echo "Kullanıcı adı girin:" yapılırsa devam etmek için USU #username ps aux | grep $ USU echo "Devam etmek istiyor musunuz?" RES okundu

Başlangıçta herhangi bir kullanıcının betiği çalıştırmasını engellemek istiyorsak, aşağıdaki kodu yalnızca kök kullanıcı tarafından yürütülebilecek şekilde koyabiliriz.
 #! / bin / bash if [[$ EUID -ne 0]]; sonra echo "Bu komut dosyası kök kullanıcı tarafından yürütülmelidir" 1> & 2 çıkış 1 fi 
Başka bir kullanıcı betiği çalıştırmaya çalışırsa çalışmaz ve terminal penceresi kapanır.
Ayrıca bazı kullanıcıların çalıştırmalarına izin verebiliriz, başlangıçta aşağıdaki kodu koyacağız.
 #! / bin / bash AUTHORIZED_USER = [$ USER! = $ AUTHORIZED_USER] ise "izin verilen kullanıcı"; sonra echo "Bu komut dosyası $ AUTHORIZED_USER kullanıcısı tarafından yürütülmelidir" 1> & 2 çıkış 1 fi

Bir kullanıcıya farklı seçenekler sunmak veya etkileşimi kolaylaştırmak için bir bash menüsü oluşturacağız.
 #! / bin / bash clear while: do echo "Bir seçenek belirleyin" echo "1. Kullanıcılar oturum açtı mı?" echo "2. Kaynak tüketimi" echo "3. Hizmetler çalışıyor mu? echo "4. Çıkış" echo -n "Bir seçenek seçin [1 - 4]" okuma seçeneği case $ seçeneği in 1) echo "Onlar bağlı:"; sessiz;; 2) echo "htop çalıştırılıyor"; htop;; 3) lsof -n -i -P | grep'*;; 4) yankı "Bitir"; çıkış 1;; *) echo "$opc geçersiz bir seçenek mi?"; echo "Devam etmek için bir tuşa basın…"; foo oku;; tamamlamak
Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave