BASH'a Yeni Başlayanlar Kılavuzu

Yeni başlayanlar için yeni başlayanlar tarafından yazılmış tek BASH öğreticisi olması bakımından benzersiz olan BASH Serisine Yeni Başlayanlar Kılavuzunun 2. bölümüne hoş geldiniz.

Bu kılavuzun okuyucuları bilgilerini artıracak ve umarım sonunda oldukça zekice senaryolar yazabileceklerdir.

Geçen sefer kapladık ilk komut dosyanızı oluşturma hangi sadece "Merhaba Dünya" kelimelerini gösterdi. Metin editörleri, terminal penceresinin nasıl açılacağı, scriptlerinizi nereye koyacağınız gibi konuları kapsar. "Merhaba Dünya" kelimeleri ve tırnak işaretleri gibi kaçış karakterlerinde bazı daha ince noktalar nasıl görüntülenir? ("").

Bu bölüm giriş parametrelerini kapsar. Var diğer kılavuzlar bu tür şeyleri öğreten, ancak çok sık olarak, oldukça düşük seviyeli şeylere atlıyorlar ve belki de çok fazla bilgi sağlıyorlar.

Bir Parametre Komut Dosyası Kişiselleştirme Ekler

Son eğitimdeki "Merhaba Dünya" senaryosunda her şey çok statikti. Senaryo aslında 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" yerine "Merhaba Gary", "Merhaba Tim" veya "Merhaba Dolly" yazacaktır.

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 giriş parametrelerini okumasına izin vererek, herhangi birini selamlamak için bir komut dosyası kullanabiliriz.

Bunu yapmak için bir terminal penceresi açın (CTRL + ALT + T) ve aşağıdakini yazarak komut dosyaları klasörünüze gidin: (cd komutu hakkında)

cd betikleri

Aşağıdakileri yazarak greetme.sh adında yeni bir komut dosyası oluşturun: (dokunmatik komut hakkında)

greetme.sh'ye dokunun

Aşağıdakini yazarak komut dosyasını favori düzenleyicinizde açın: (nano komut hakkında)

nano greetme.sh

Aşağıdaki metni nano içine girin:

#!/bin/bash
yankı "merhaba $@"

basmak CTRL ve Ö dosyayı kaydetmek ve ardından CTRL ve x dosyayı kapatmak için

parametrelerle Linux temel Bash betiği

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

sh selamlama.sh Tim

Komut dosyasını adımla çalıştırırsam, "Merhaba Gary" kelimelerini 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 yankı ifadesini kullanır ve ardından garip $@ gösterimi vardır. (yankı komutu hakkında)

$@, komut dosyası adıyla birlikte girilen her parametreyi gösterecek şekilde genişler. Yani "sh greetme.sh tim" yazarsanız, "merhaba tim" kelimeleri görüntülenecektir. Eğer "greetme.sh tim smith" yazarsanız, o zaman "merhaba tim smith" kelimeleri görüntülenecektir.

Yankı Komutlarını Kullanma

greetme.sh betiğinin sadece ilk adı kullanarak merhaba demesi güzel olabilir. Kimse biriyle tanıştığında "Merhaba Gary Newell" demez ama yine de "Merhaba Gary" diyebilir.

Komut dosyasını sadece ilk parametreyi kullanacak şekilde değiştirelim. Aşağıdakileri yazarak greetme.sh betiğini nano'da açın:

nano greetme.sh

Komut dosyasını aşağıdaki gibi okunacak şekilde değiştirin:

#!/bin/bash
yankı "merhaba $1"

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

Bireysel parametreli Linux Bash betiği

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

sh greetme.sh gary newell

Komut dosyasını çalıştırdığınızda, basitçe "Merhaba Gary" (veya umarım "merhaba" ve adınız her neyse) diyecektir.

Linux, Bash betiğini tek parametreyle çalıştırır

$ sembolünden sonraki 1, temelde echo komutuna diyor, ilk parametreyi kullanın. $1'ı $2 ile değiştirirseniz, "merhaba newell" (veya soyadınız ne olursa olsun) görüntülenir. Tam adı almak için $1'dan sonra $2 ekleyebilirsiniz.

Birden çok parametreli Linux Bash betiği

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

Birden çok parametreli Linux çalıştırma betiği

Bu arada, $2'ı $3 ile değiştirirseniz ve komut dosyasını 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 sonraki öğreticiler, doğrulama amacıyla parametre sayısını nasıl kullanacağınızı size gösterecektir.

Girilen parametre 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"
yankı "merhaba $@"

basmak CTRL ve Ö komut dosyasını kaydetmek ve CTRL ve x nanodan çıkmak için

Linux Bash komut dosyası sayma parametreleri

2. satırdaki $# girilen parametre sayısını gösterir.

Şimdiye kadar, bunların hepsi yeniydi ama çok kullanışlı değil. Kim sadece "merhaba" yazan bir komut dosyasına ihtiyaç duyar?

Linux çalıştırma bash betiği sayma parametreleri

Yankı İfadeleri vs. Giriş parametreleri

Echo deyimlerinin gerçek kullanımı, kullanıcıya ayrıntılı ve anlamlı çıktılar sağlamaktır. Bazı ciddi sayıların çatırdamasını içeren karmaşık bir şey yapmak istediğinizi hayal edebiliyorsanız. ve dosya/klasör manipülasyonu için, kullanıcıya sürecin her adımında neler olduğunu göstermek faydalı olacaktır. yol.

Buna karşılık, giriş 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 de var ve hepsini tek bir kod parçasına dahil edeceğ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"
yankı "merhaba $@"

basmak 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 (adınız ile değiştirin).

sh selamlama.sh 

Bu sefer komut dosyası aşağıdakileri görüntüler:

Dosya adı: greetme.sh
İşlem Kimliği: 18595

2 isim girdin
merhaba gary newell
Ek bilgi içeren Linux Bash komut dosyası çalıştırma

Komut dosyasının ilk satırındaki $0, çalıştırdığınız komut dosyasının adını görüntüler. Dolar o değil, dolar sıfır olduğuna dikkat edin.

İkinci satırdaki $$, çalıştırdığınız betiğin işlem kimliğini görüntüler. Bu neden yararlıdır? Ön planda bir komut dosyası çalıştırıyorsanız, sadece tuşuna basarak iptal edebilirsiniz. CTRL ve C. Komut dosyasını arka planda çalıştırdıysanız ve döngüye girmeye ve aynı şeyi tekrar tekrar yapmaya başladıysa veya sisteminize zarar vermeye başladıysa, onu öldürmeniz gerekir.

Arka planda çalışan bir komut dosyasını kapatmak için komut dosyasının işlem kimliğine ihtiyacınız vardır. Komut dosyasının çıktısının bir parçası olarak süreç kimliğini vermesi iyi olmaz mıydı? (ps ve kill komutları hakkında)

Kapatmak için...

Son olarak, bu konuyu bitirmeden önce çıktının nereye gittiğini tartışmak önemlidir. Komut dosyası şu ana kadar her çalıştığında çıktı ekranda görüntülendi.

Komut dosyası çı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 yazar. Dosyaya eklemeyi tercih ederseniz, > işaretini >> ile değiştirin.

Artık ekrana metin yazabilmeli ve giriş parametrelerini kabul edebilmelisiniz.