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

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.

İ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.

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.

$ 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 fazla parametre ile çalıştırıldığında girilen sıraya karşılık gelen yerlerde görüntülenecektir.

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

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?

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.

Ş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

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.