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.
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 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.shOutputmu harus berupa:
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 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
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 DirektoriRingkasan: Operasi Direktori7Isi File
Head dan TailJumlah KataPerintah SortPerintah UniqueDasar-Dasar GrepGrep dengan FlagUlasan: Detektif Teks10Proyek Penganalisis Log
Gambaran Umum ProyekMelihat File Log13Dasar-Dasar Shell Scripting
Apa Itu Shell ScriptBuat dan Jalankan ScriptVariabel dalam ScriptInput Pengguna dalam ScriptPernyataan ifFor loopWhile loopRingkasan: Tebak Angka2Navigasi
Tampilkan Direktori KerjaLihat Daftar FileGanti DirektoriJalur Absolut vs RelatifDirektori Home dan RootRingkasan: Temukan Arahmu8Pengalihan
Output StandarMenimpa FileMenambahkan ke FileInput StandarError StandarRangkuman: Pembuat Log6Wildcard dan Pola
Wildcard Tanda BintangWildcard Tanda TanyaWildcard Tanda Kurung SikuMenggabungkan WildcardRangkuman: Operasi Selektif9Penggunaan Pipe
Apa Itu PipeMenghubungkan Dua PerintahMenghubungkan Beberapa PerintahPipe dengan grepRingkasan: Pipeline DataLatihan sendiri: Playground Terminal