Betiklerde Kullanıcı Girdisi
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 69 / 82.
Değişkenler faydalıdır, ancak bazen betiğinizin çalışırken kullanıcıdan bilgi istemesini istersiniz. read komutu betiği duraklatır ve kullanıcının bir şey yazmasını bekler, ardından o girdiyi bir değişkende saklar.
İşte nasıl çalıştığı:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"Bu betik çalıştırıldığında, soruyu yazdırır, kullanıcının adını yazıp Enter tuşuna basmasını bekler, ardından onları selamlar. read komutu, kullanıcının yazdığı her şeyi name değişkenine depolar.
-p bayrağını kullanarak istemi daha temiz hale getirebilirsiniz, bu bayrak istem mesajını ve girdiyi aynı satırda birleştirir:
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"Bu, Enter your name: gösterir ve aynı satırda giriş bekler, bu da daha düzgün görünür. -p bayrağı prompt metnini argüman olarak alır, ardından girdiyi saklamak için değişken adını belirtir.
Kullanıcı girdisi betikleri etkileşimli ve uyarlanabilir kılar. Değerleri sabit kodlamak yerine, kullanıcının her çalıştırdığında sağladığı girdiye göre farklı şekilde çalışan tek bir betik yazabilirsiniz.
Görev
Kolaygreeter.sh adlı bir kabuk betiği oluşturun; bu betik kullanıcıdan en sevdiği rengi sorsun ve girdilerini kullanarak bir mesaj göstersin.
Betikiniz şunları yapmalıdır:
- Shebang satırıyla başlamalı (
#!/bin/bash) read'i-pbayrağıyla kullanarak şu prompt'u vermeli:What is your favorite color?- Girdiyi
coloradlı bir değişkende saklamalı echokullanarak şunu yazdırmalı:Nice! [color] is a great color!(burada [color] kullanıcının girdisidir)
Betiği çalıştırılabilir hale getirin ve çalıştırın. Sorulduğunda cevabınız olarak blue girin.
Çıktınız şöyle olmalıdır:
What is your favorite color? blue
Nice! blue is a great color!İpucu: Betiği satır satır
echoile yönlendirme kullanarak oluşturun. Girdiyi yakalamak ve prompt etmek içinread -p "What is your favorite color? " colorkullanın, ardından sonucu görüntülemek içinecho "Nice! $color is a great color!"kullanın.
Kopya kağıdı
read komutu betiği duraklatır ve kullanıcı girdisini bekler, ardından bunu bir değişkende saklar:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"İstem ve girdiyi aynı satırda göstermek için -p bayrağını kullanın:
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"-p bayrağı istek metnini argüman olarak alır, ardından girdiyi saklayacak değişken adıyla takip edilir.
Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme13Kabuk Betikleme Temelleri
Kabuk Betiği NedirBir Betik Oluştur ve ÇalıştırBetiklerde DeğişkenlerBetiklerde Kullanıcı GirdisiIf İfadesiFor DöngüsüWhile DöngüsüÖzet - Sayı Tahmincisi2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru Hattı