Yeni Başlayanlar Kılavuzu BASH - Giriş Parametreleri

Yeni başlayanlar için yeni başlayanlar tarafından yazılan tek BASH öğreticisi olduğu için BASH serisine Yeni Başlayanlar Kılavuzunun 2. bölümüne hoş geldiniz.

Bu rehberin okuyucuları bilgimi biriktirirken bilgimi biriktirecekler ve umarım tüm bunların sonunda, oldukça zekice yazılmış betikler yazabileceğiz.

Geçen hafta sadece "Merhaba Dünya" kelimelerini gösteren ilk senaryonuzu oluşturmaya başladım. Metin editörleri, bir terminal penceresinin nasıl açılacağı, komut dosyalarınızın nereye yerleştirileceği, "Merhaba Dünya" kelimelerinin nasıl görüntüleneceği ve tırnak işaretleri ("") gibi kaçış karakterlerinin bazı daha ince noktaları gibi konuları kapsar.

Bu hafta giriş parametrelerini kapatacağım. Bu tür bir şeyi öğreten başka rehberler de var ama bazı oldukça düşük seviyeli şeylere atladıklarını ve çok fazla bilgi sağladığını düşünüyorum.

Bir Parametre Nedir?

Son öğreticiden "Merhaba Dünya" betiğinde, hepsi çok statikti. Senaryo gerçekten hiç yapmadı.

"Merhaba Dünya" senaryosunda nasıl geliştirebiliriz?

Onu çalıştıran kişiyi selamlayan bir senaryo ne olacak? "Merhaba Dünya" demek yerine "Merhaba Gary", "Merhaba Tim" veya "Hello Dolly" diyecek.

Giriş parametrelerini kabul etme yeteneği olmadan, "hellogary.sh", "hellotim.sh" ve "hellodolly.sh" olmak üzere üç betik yazmamız gerekir.

Komutumuzun giriş parametrelerini okumasına izin vererek, herkesi selamlamak için tek bir komut dosyası kullanabiliriz.

Bunu yapmak için bir terminal penceresi (CTRL + ALT + T) açın ve aşağıdakileri yazarak komut dosyalarına gidin: ( cd komutu hakkında )

cd komut dosyaları

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

greetme.sh

Sık kullanılan editördeki komut dosyasını aşağıdakileri yazarak açın: ( nano komutu hakkında )

nano greetme.sh

Nano içinde aşağıdaki metni girin:

#! / bin / bash echo "merhaba $ @"

Dosyayı kaydetmek için CTRL ve O tuşlarına, ardından dosyayı kapatmak için CTRL ve X tuşlarına basın.

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

sh Instagram Hesabındaki Resim ve Videoları greetme.sh

Senaryoyu ismimle çalıştırırsam, "Merhaba Gary" kelimesini 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 sözcüğünü yankılamak için eko deyimini kullanır ve sonra garip $ @ notasyonu vardır. ( echo komutu hakkında )

$ @, Komut dosyası adıyla birlikte girilen her parametreyi görüntülemek için genişletir. Yani "sh greetme.sh tim" yazdıysanız, "merhaba tim" kelimesi görüntülenir. Eğer "greetme.sh tim smith" yazdıysanız, "merhaba tim smith" kelimeleri görüntülenir.

Greetme.sh betiğinin sadece ilk adı kullanarak sadece merhaba demesi hoş olabilir. Kimse benimle tanıştıklarında "merhaba gary newell" demez, yine de "merhaba gary" diyebilirler.

Komut dosyasını, sadece ilk parametreyi kullanacak şekilde değiştirelim. Aşağıdakileri yazarak nano'daki greetme.sh komut dosyasını 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ı CTRL ve O tuşlarına basarak kaydedin ve sonra CTRL ve X tuşlarına basarak çıkın.

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

greetme.sh gary newell sh

Komut dosyasını çalıştırdığınızda "merhaba gary" (ya da umarım "merhaba" diyeceksiniz ve adınız her neyse).

$ Simgesinin ardından 1, temelde echo komutuna yazıyor, ilk parametreyi kullanın. Eğer 1 $ 'ı $ 2 ile değiştirirseniz, o zaman "merhaba newell" (ya da soyadınız ne olursa olsun) görüntülenir.

Bu arada, 2 $ 'yı 3 $ ile değiştirdiyseniz ve sadece 2 parametreyi kullanarak komut dosyasını çalıştırırsanız, çıktı sadece "Merhaba" olur.

Gerçekte girilen ve daha sonraki derslerde parametre sayısını görüntülemek ve işlemek mümkündür. Parametre sayımının doğrulama amacıyla nasıl kullanılacağını göstereceğim.

Girilen parametre sayısını görüntülemek için greetme.sh betiğini (nano greetme.sh) açın ve aşağıdaki gibi metni değiştirin:

#! / bin / bash echo "$ # isim girdiniz" echo "hello $ @"

Komut dosyasını kaydetmek için CTRL ve O tuşlarına ve nano'dan çıkmak için CTRL ve X tuşlarına basın.

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

Şimdiye kadar bütün bunlar yeni ama çok kullanışlı değil. Kimin sadece "merhaba" yazan bir senaryoya ihtiyacı var?

Yankı ifadeleri için gerçek kullanım, kullanıcıya ayrıntılı ve anlamlı bir çıktı sağlamaktır. Ciddi bir sayıya sahip olan bir dizi karışıklık ve dosya / klasör manipülasyonunu içeren karmaşık bir şey yapmak istediğinizi hayal edemiyorsanız, kullanıcıya yolun her adımında neler olduğunu göstermek faydalı olacaktır.

Buna karşılık, giriş parametreleri komut dosyanızı etkileşimli hale getirir. Girdi parametreleri olmadan, çok benzer şeyler yapan düzinelerce betiğe, ancak biraz farklı isimlere ihtiyacınız olacaktır.

Tüm bunlar göz önünde bulundurulduğunda, bilmeniz gereken bir başka yararlı girdi parametresi vardır ve bunları tek bir kod snippet'ine dahil edeceğim.

Greetme.sh dosyanızı açın ve aşağıdaki gibi değiştirin:

#! / bin / bash echo "Dosya adı: $ 0" echo "İşlem Kimliği: $$" echo "---------------------------- --- "echo" $ # adlarını girdiniz "echo" hello $ @ "

Dosyayı kaydetmek için CTRL ve O tuşlarına ve çıkmak için CTRL ve X tuşlarına basın.

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

sh Instagram Hesabındaki Resim ve Videoları greetme.sh

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

Dosya adı: greetme.sh İşlem Kimliği: 18595 ------------------------------ 2 isim girdiniz hello 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 sıfır ve dolar o değil unutmayın.

İkinci satırdaki $$, çalıştığınız komut dosyasının işlem kimliğini görüntüler. Bu neden yararlı? Ön planda bir komut dosyası çalıştırıyorsanız, CTRL ve C tuşlarına basarak iptal edebilirsiniz. Eğer komut dosyasını arka planda çalıştırırsanız ve aynı şeyleri tekrar tekrar başlatıp tekrar başlatırsanız ya da sisteminize zarar vermenize neden olan öldürmek için.

Arka planda çalışan bir betiği öldürmek için komut dosyasının işlem kimliğine ihtiyacınız vardır. Komut, işlem kimliğini çıktılarının bir parçası olarak vermesi iyi olmaz. ( ps ve kill komutları hakkında )

Sonunda bu konuyu bitirmeden önce çıktının nereye gittiğini tartışmak istedim. Komut şimdiye kadar çalıştırıldığı her defasında ekranda çıktı çıktı.

Komut çıktısının çıktı dosyasına yazılması oldukça yaygındır. Bunu yapmak için komut dosyasını aşağıdaki gibi çalıştırın:

sh greetme.sh gary> Instagram Hesabındaki Resim ve Videoları greetme.log

Yukarıdaki komuttaki> sembolü, "merhaba gary" metnini greetme.log adlı bir dosyaya gönderir.

Senaryoyu> sembolü ile her çalıştırdığınızda, çıktı dosyasının içeriğinin üzerine yazar. Dosyaya eklemeyi tercih ederseniz,> ile >> değiştirin.

özet

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