Menu
CoddyTech

Input Pengguna dalam Script

Termasuk bagian Dasar-Dasar dalam perjalanan Terminal di Coddy. Pelajaran 69 dari 82.

Variabel berguna, tetapi terkadang kamu ingin skripmu meminta informasi dari pengguna saat berjalan. Perintah read menjeda skrip dan menunggu pengguna mengetik sesuatu, lalu menyimpan input itu dalam sebuah variabel.

Begini cara kerjanya:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

Saat skrip ini dijalankan, skrip ini mencetak pertanyaan, menunggu pengguna mengetik nama mereka dan menekan Enter, lalu menyapa mereka. Perintah read mengambil apa pun yang diketik pengguna dan menyimpannya dalam variabel name.

Kamu bisa membuat prompt lebih rapi dengan menggunakan flag -p, yang menggabungkan pesan prompt dan input pada baris yang sama:

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

Ini menampilkan Enter your name: dan menunggu input pada baris yang sama, sehingga tampilannya lebih rapi. Flag -p menggunakan teks prompt sebagai argumennya, diikuti nama variabel untuk menyimpan input.

Input dari pengguna membuat skrip interaktif dan mudah beradaptasi. Alih-alih menetapkan nilai secara langsung, kamu bisa menulis satu skrip yang bekerja secara berbeda berdasarkan hal yang diberikan pengguna setiap kali mereka menjalankannya.

challenge icon

Tantangan

Mudah

Buat skrip shell bernama greeter.sh yang menanyakan warna favorit pengguna, lalu menampilkan pesan menggunakan input mereka.

Skripmu harus:

  1. Dimulai dengan baris shebang (#!/bin/bash)
  2. Menggunakan read dengan flag -p untuk menampilkan prompt: What is your favorite color?
  3. Menyimpan input dalam variabel bernama color
  4. Menggunakan echo untuk mencetak: Nice! [color] is a great color! (dengan [color] sebagai input pengguna)

Buat skrip dapat dieksekusi, lalu jalankan dengan blue sebagai input. Terminal ini tidak interaktif, jadi terminal ini tidak dapat berhenti dan menunggu kamu mengetik. Kirim jawaban ke skrip menggunakan pipe:

echo "blue" | ./greeter.sh

Outputmu harus berupa:

Nice! blue is a great color!

Catatan: prompt What is your favorite color? tidak ditampilkan di sini. read -p hanya mencetak prompt-nya saat input berasal dari keyboard, sedangkan di sini input berasal dari pipe.

Bungkus setiap baris yang kamu tulis dengan tanda petik tunggal: echo 'echo "Hello $name"' >> script.sh. Tanda petik tunggal mencegah shell mengganti $name saat file ditulis, sehingga skrip tetap menyimpan variabel tersebut dan nilainya diperluas saat skrip dijalankan. Tanda petik ganda akan mengganti nilainya secara langsung.

Petunjuk: Buat skrip baris demi baris menggunakan echo dengan pengalihan. Gunakan read -p "What is your favorite color? " color untuk menampilkan prompt dan menangkap input, lalu echo "Nice! $color is a great color!" untuk menampilkan hasilnya.

Coba sendiri

Terminal
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Terminal