Skip to content

Yeni Başlayanlar için BASH Kılavuzu – Giriş Parametreleri

11 de Nisan de 2021

Yeni başlayanlar için yeni başlayanlar tarafından yazılan tek BASH öğreticisi olması bakımından benzersiz olan Beginners Guide To BASH serisinin 2. bölümüne hoş geldiniz. Bu kılavuzun okuyucuları bilgilerini geliştirecekler ve umarım sonunda oldukça zekice yazılmış bazı senaryolar yazabilecekler. Geçen sefer, sadece “Merhaba Dünya” kelimelerini gösteren ilk senaryonuzu oluşturduk. Metin editörleri, bir terminal penceresinin nasıl açılacağı, komut dosyalarınızı nereye koyacağınız, “Merhaba Dünya” kelimelerinin nasıl görüntüleneceği ve tırnak işaretleri (“”) gibi kaçış karakterleri üzerindeki bazı ince noktalar gibi konuları kapsar. Bu bölüm giriş parametrelerini kapsar. Bu tür şeyleri öğreten başka rehberler de var, ancak çoğu zaman oldukça düşük seviyeli şeylere atlıyorlar ve belki de çok fazla bilgi veriyorlar.

Bir Parametre Komut Dosyası Kişiselleştirme Ekler

Son eğiticideki “Merhaba Dünya” komut dosyasında her şey çok durağan. Senaryo gerçekten pek bir şey yapmadı.

“Merhaba Dünya” senaryosunu nasıl geliştirebiliriz?

Onu çalıştıran kişiyi selamlayan bir senaryoya ne dersiniz? “Merhaba Dünya” demek yerine “Merhaba Gary”, “Merhaba Tim” veya “Merhaba Dolly” diyecektir. Girdi parametrelerini kabul etme yeteneği olmadan, “hellogary.sh”, “hellotim.sh” ve “hellodolly.sh” olmak üzere üç komut dosyası yazmamız gerekir.

Parametre Nasıl Oluşturulur

Komut dosyamızın girdi parametrelerini okumasına izin vererek, herkesi selamlamak için bir komut dosyası kullanabiliriz. Bunu yapmak için bir terminal penceresi açın (CTRL + ALT + T) ve aşağıdakileri yazarak komut dosyaları klasörünüze gidin: (cd komutu hakkında) cd komut dosyaları

Aşağıdakileri yazarak greetme.sh adında yeni bir komut dosyası oluşturun: (dokunma komutu hakkında) greetme.sh’ye dokunun

Aşağıdakini yazarak komut dosyasını en sevdiğiniz düzenleyicide açın: (nano komutu hakkında) nano greetme.sh

Nano içine şu metni girin: #! / Bin / bash
echo “merhaba $ @”

Basın CTRL ve Ö dosyayı kaydetmek ve ardından CTRL ve X dosyayı kapatmak için.

Komut dosyasını çalıştırmak için, komut satırına adınızla değiştirerek aşağıdakini girin. sh greetme.sh Tim

Komut dosyasını adımla çalıştırırsam, “Merhaba Gary” sözcüklerini görüntüler.

Linux, parametrelerle temel komut dosyasını çalıştırır

İlk satır, dosyayı bir bash betiği olarak tanımlamak için kullanılan #! / Bin / bash satırına sahiptir. İkinci satır, merhaba kelimesini yankılamak için echo ifadesini kullanır ve sonra garip bir $ @ notasyonu vardır. (echo komutu hakkında) $ @, komut dosyası adıyla birlikte girilen her parametreyi görüntülemek için genişler. Bu nedenle, “sh greetme.sh tim” yazdıysanız, “merhaba tim” kelimeleri görüntülenecektir. “Greetme.sh tim smith” yazdıysanız, “merhaba tim smith” kelimeleri görüntülenecektir.

Echo Komutlarını Kullanma

Greetme.sh betiğinin yalnızca ilk adı kullanarak merhaba demesi güzel olabilir. Kimse biriyle tanıştıklarında “Merhaba Gary Newell” demez, ama yine de “Merhaba Gary” diyebilirler. Komut dosyasını sadece ilk parametreyi kullanacak şekilde değiştirelim. Greetme.sh komut dosyasını aşağıdakini yazarak nano’da açın: nano greetme.sh

Komut dosyasını aşağıdaki gibi okuyacak şekilde değiştirin: #! / Bin / bash
echo “merhaba $ 1”

Komut dosyasını, tuşuna basarak kaydedin. CTRL ve Ö ve ardından tuşuna basarak çıkın CTRL ve X.

Bağımsız parametrelere sahip Linux Bash komut dosyası

Komut dosyasını aşağıda gösterildiği gibi çalıştırın (adı sizinkiyle değiştirin): sh greetme.sh gary newell

Komut dosyasını çalıştırdığınızda, basitçe “Merhaba Gary” (veya umarız “merhaba” ve adınız ne olursa olsun) der.

Linux, Bash komut dosyasını tek parametreli çalıştırır

$ Sembolünden sonraki 1, temelde echo komutuna ilk parametreyi kullanın diyor. $ 1’i $ 2 ile değiştirirseniz, “merhaba newell” (veya soyadınız ne olursa olsun) gösterecektir. Tam adı almak için 1 $ ‘dan sonra 2 $ da ekleyebilirsiniz.

Birden çok parametreye sahip Linux Bash komut dosyası

Birden fazla parametre ile çalıştırıldığında, girildikleri sıraya karşılık gelen yerlerde görüntülenir.

Linux birden çok parametreye sahip komut dosyası çalıştırır

Bu arada, $ 2’yi $ 3 ile değiştirirseniz ve betiği sadece 2 parametre ile çalıştırırsanız, çıktı basitçe “Merhaba” olur.

Kullanılan Parametre Sayısı Nasıl Görüntülenir

Gerçekte girilen parametre sayısını görüntülemek ve işlemek mümkündür ve daha sonraki eğitimler, doğrulama amacıyla parametre sayısını nasıl kullanacağınızı gösterecektir. Girilen parametrelerin sayısını görüntülemek için, greetme.sh komut dosyasını (nano greetme.sh) açın ve metni aşağıdaki gibi değiştirin: #! / Bin / bash
echo “$ # isim girdiniz”
echo “merhaba $ @”

Basın CTRL ve Ö komut dosyasını kaydetmek ve CTRL ve X nano’dan çıkmak için.

Linux Bash komut dosyası sayısı parametreleri

2. satırdaki $ #, girilen parametre sayısını gösterir. Şimdiye kadar, bunların hepsi yeni oldu, ancak pek yararlı olmadı. Sadece “merhaba” yazan bir betiğe kim ihtiyaç duyar?

Linux çalıştırma bash komut dosyası sayma parametreleri

Yankı İfadeleri ve Giriş Parametreleri

Yankı ifadelerinin gerçek kullanımı, kullanıcıya ayrıntılı ve anlamlı çıktı sağlamaktır. Bazı ciddi sayı hesaplamaları ve dosya / klasör manipülasyonu içeren karmaşık bir şey yapmak istediğinizi hayal edebiliyorsanız, kullanıcıya her adımda neler olduğunu göstermek faydalı olacaktır. Buna karşılık, girdi parametreleri komut dosyanızı etkileşimli hale getirir. Girdi parametreleri olmadan, hepsi çok benzer şeyler yapan, ancak biraz farklı adlara sahip düzinelerce komut dosyasına ihtiyacınız olacaktır. Tüm bunları göz önünde bulundurarak, bilmenin iyi bir fikir olduğu başka yararlı girdi parametreleri var ve hepsini tek bir kod parçacığına ekleyeceğim. Greetme.sh betiğinizi açın ve aşağıdaki gibi değiştirin: #! / Bin / bash
echo “Dosya adı: $ 0”
echo “İşlem Kimliği: $$”
Eko “——————————-“
echo “$ # isim girdiniz”
echo “merhaba $ @”

Basın CTRL ve Ö dosyayı kaydetmek ve CTRL ve X çıkışa doğru.

Linux Bash betiği ek bilgileri

Şimdi, betiği çalıştırın (isminizle değiştirin). sh greetme.sh

Bu sefer komut dosyası şunları görüntüler: Dosya adı: greetme.sh
İşlem Kimliği: 18595
——————————
2 isim girdiniz
merhaba gary newell

Linux Bash ek bilgi içeren komut dosyasını çalıştırın

Komut dosyasının ilk satırındaki $ 0, çalıştırdığınız komut dosyasının adını gösterir. Dolar sıfır olduğunu ve o doları olmadığını unutmayın. İkinci satırdaki $$, çalıştırdığınız komut dosyasının işlem kimliğini gösterir. Bu neden yararlıdır? Ön planda bir komut dosyası çalıştırıyorsanız, sadece düğmesine basarak iptal edebilirsiniz. CTRL ve C. Komut dosyasını arka planda çalıştırdıysanız ve döngü yapmaya ve aynı şeyi defalarca yapmaya veya sisteminize zarar vermeye başladıysa onu öldürmeniz gerekir. Arka planda çalışan bir komut dosyasını öldürmek için, komut dosyasının işlem kimliğine ihtiyacınız vardır. Komut dosyası, çıktısının bir parçası olarak işlem kimliğini vermiş olsaydı iyi olmaz mıydı? (ps ve kill komutları hakkında)

Toparlamak İçin …

Son olarak, bu konuyu bitirmeden önce, çıktının nereye gittiğini tartışmak önemlidir. Betik şimdiye kadar her çalıştırıldığında, çıktı ekranda görüntülenir. Komut çıktısının bir çıktı dosyasına yazılması oldukça yaygındır. Bunu yapmak için komut dosyanızı aşağıdaki gibi çalıştırın: sh greetme.sh gary> greetme.log

Yukarıdaki komuttaki> sembolü, “merhaba gary” metnini greetme.log adlı bir dosyaya verir. Komut dosyasını> sembolüyle her çalıştırdığınızda, çıktı dosyasının içeriğinin üzerine yazılır. Dosyaya eklemeyi tercih ederseniz> yerine >> yazın. Artık ekrana metin yazabilmeli ve giriş parametrelerini kabul edebilmelisiniz.