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 skrip 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 akan mencetak pertanyaan, menunggu pengguna mengetik namanya dan menekan Enter, lalu menyapanya. 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 di baris yang sama, sehingga terlihat lebih rapi. Flag -p menerima teks prompt sebagai argumennya, diikuti nama variabel untuk menyimpan input.
Input pengguna membuat skrip menjadi interaktif dan mudah disesuaikan. Alih-alih menetapkan nilai secara langsung dalam kode, kamu bisa menulis satu skrip yang bekerja secara berbeda berdasarkan hal yang diberikan pengguna setiap kali mereka menjalankannya.
Tantangan
MudahBuat skrip shell bernama greeter.sh yang menanyakan warna favorit pengguna, lalu menampilkan pesan menggunakan input mereka.
Skripmu harus:
- Dimulai dengan baris shebang (
#!/bin/bash) - Menggunakan
readdengan flag-puntuk menampilkan prompt:What is your favorite color? - Menyimpan input dalam variabel bernama
color - Menggunakan
echountuk mencetak:Nice! [color] is a great color!(dengan [color] sebagai input pengguna)
Buat skripnya dapat dieksekusi, lalu jalankan dengan blue sebagai input. Terminal ini tidak interaktif, jadi tidak bisa berhenti dan menunggu kamu mengetik. Karena itu, kirim jawabannya ke dalam skrip menggunakan pipe:
echo "blue" | ./greeter.shOutputmu seharusnya:
Nice! blue is a great color!Catatan: prompt
What is your favorite color?tidak ditampilkan di sini.read -phanya 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$namesaat file sedang ditulis, sehingga skrip tetap menyimpan variabel tersebut dan mengembangkannya saat dijalankan. Tanda petik ganda akan langsung mengganti nilainya.
Petunjuk: Buat skrip baris demi baris menggunakan
echodengan pengalihan. Gunakanread -p "What is your favorite color? " coloruntuk menampilkan prompt dan menangkap input, laluecho "Nice! $color is a great color!"untuk menampilkan hasilnya.
Coba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Direktori
Buat DirektoriSalin DirektoriPindahkan dan Ganti Nama DirektoriHapus DirektoriUlasan: Operasi Direktori7Isi File
Perintah head dan tailJumlah KataPerintah sortPerintah uniqueDasar-dasar grepgrep dengan FlagUlasan: Detektif Teks10Proyek Analisis Log
Ikhtisar ProyekMelihat File Log13Dasar-Dasar Shell Scripting
Apa Itu Shell ScriptMembuat dan Menjalankan ScriptVariabel dalam ScriptInput Pengguna dalam ScriptPernyataan IfFor LoopWhile LoopRangkuman: Tebak Angka2Navigasi
Tampilkan Direktori KerjaTampilkan Daftar FileGanti DirektoriJalur Absolut vs RelatifDirektori Home dan RootRingkasan: Temukan Arahmu8Pengalihan
Keluaran StandarTimpa FileTambahkan ke FileMasukan StandarStandard ErrorRangkuman: Pembuat Log6Wildcard dan Pola
Wildcard BintangWildcard Tanda TanyaWildcard Kurung SikuMenggabungkan WildcardUlasan: Operasi Selektif9Penggunaan Pipe
Apa Itu PipeMerangkai Dua PerintahMerangkai Beberapa PerintahPipe dengan GrepRingkasan: Pipeline DataLatihan sendiri: Playground Terminal