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

İş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, ardından onu selamlar. read komutu, kullanıcının yazdığı şeyi alır ve name değişkeninde depolar.

-p işaretini kullanarak istemi daha temiz hâle getirebilirsin; bu işaret, istem mesajı ile girdiyi aynı satırda birleştirir:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

Bu, Enter your name: ifadesini görüntüler ve aynı satırda girdi bekler; bu da daha profesyonel görünür. -p bayrağı, bağımsız değişkeni olarak istem metnini alır; ardından girdiyi depolayacak değişkenin adı gelir.

Kullanıcı girdisi, betikleri etkileşimli ve uyarlanabilir hâle getirir. Değerleri sabit kodlamak yerine, kullanıcıların her çalıştırdıklarında sağladıkları bilgilere göre farklı şekilde çalışan tek bir betik yazabilirsin.

challenge icon

Görev

Kolay

Kullanıcıdan en sevdiği rengi isteyen ve ardından girdisini kullanarak bir mesaj görüntüleyen greeter.sh adlı bir kabuk betiği oluşturun.

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

  1. Shebang satırıyla başlayın (#!/bin/bash)
  2. Kullanıcıdan şu istemi göstermek için read komutunu -p bayrağıyla kullanın: What is your favorite color?
  3. Girdiyi color adlı bir değişkende saklayın
  4. Şunu yazdırmak için echo kullanın: Nice! [color] is a great color! ([color], kullanıcının girdisidir)

Betiği çalıştırılabilir hâle getirin, ardından girdi olarak blue ile çalıştırın. Bu terminal etkileşimli değildir; durup sizin yazmanızı bekleyemez. Bu nedenle yanıtı bir yönlendirmeyle betiğe gönderin:

echo "blue" | ./greeter.sh

Çıktınız şu 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 girdi yönlendirmeden gelir.

Yazdığınız her satırı tek tırnak içine alın: echo 'echo "Hello $name"' >> script.sh. Tek tırnaklar, dosya yazılırken kabuğun $name ifadesini değiştirmesini engeller; böylece betik değişkeni korur ve çalıştığında genişletir. Çift tırnaklar değeri hemen yerine koyar.

İpucu: Yönlendirmeyle birlikte echo kullanarak betiği satır satır oluşturun. Girdi istemek 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

Kendi başına pratik yap: Terminal playground