Menu
Coddy logo textTech

Betiklerde Kullanıcı Girdisi

Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 69 / 82.

Değişkenler kullanışlı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 bu 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ığında, soruyu yazdırır, kullanıcının adını yazıp Enter tuşuna basmasını bekler ve ardından onu selamlar. read komutu, kullanıcının yazdığı her şeyi alır ve name değişkeninde saklar.

-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 komut Enter your name: metnini görüntüler ve girdi için aynı satırda bekler, bu da daha şık görünür. -p bayrağı, istem metnini bağımsız değişken olarak alır ve ardından girdiyi saklayacak değişken adı gelir.

Kullanıcı girdisi, betikleri etkileşimli ve uyarlanabilir hale getirir. Değerleri doğrudan koda sabitlemek yerine, kullanıcının betiği her çalıştırdığında sunduğu bilgilere göre farklı şekilde çalışan tek bir betik yazabilirsiniz.

challenge icon

Görev

Kolay

Kullanıcıya en sevdiği rengi soran ve ardından aldığı girdiyi kullanarak bir mesaj görüntüleyen greeter.sh adında bir shell betiği oluşturun.

Betiğiniz şunları yapmalıdır:

  1. Shebang satırı (#!/bin/bash) ile başlamalıdır
  2. İstekte bulunmak için -p bayrağı ile read kullanmalıdır: What is your favorite color?
  3. Girdiyi color adında bir değişkende saklamalıdır
  4. Bunu yazdırmak için echo kullanmalıdır: Nice! [color] is a great color! ([color] kullanıcının girdisi olacak şekilde)

Betiği çalıştırılabilir hale getirin, ardından girdi olarak blue vererek çalıştırın. Bu terminal etkileşimli değildir — durup yazmanızı bekleyemez — bu nedenle bir pipe kullanarak cevabı betiğe gönderin:

echo "blue" | ./greeter.sh

Çıktınız şu şekilde olmalıdır:

Nice! blue is a great color!

Not: What is your favorite color? istemi burada görüntülenmez. read -p istemini yalnızca girdi bir klavyeden geldiğinde yazdırır; burada ise pipe üzerinden gelmektedir.

İpucu: Yönlendirme ile echo kullanarak betiği satır satır oluşturun. İstemde bulunmak ve girdiyi yakalamak için read -p "What is your favorite color? " color, ardından sonucu görüntülemek için echo "Nice! $color is a great color!" kullanın.

Kendin dene

Terminal
quiz iconKendini test et

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