Pendahuluan
Bash read command adalah utilitas bawaan yang membaca teks dari input standar. Alat ini menawarkan banyak fungsi untuk membaca masukan pengguna, membantu membuat skrip Bash menjadi interaktif.
Panduan ini menjelaskan cara Bash read perintah bekerja melalui berbagai contoh dan kasus penggunaan.
Prasyarat
- Akses ke baris perintah/terminal.
- Dasar-dasar bekerja dengan variabel lingkungan.
Bash membaca Sintaks
Sintaks untuk Bash read perintahnya adalah:
read <options> <arguments>
read perintah mengambil input pengguna dan membagi string menjadi beberapa bidang, menetapkan setiap kata baru ke argumen. Jika variabel lebih sedikit daripada kata, read menyimpan suku-suku yang tersisa ke dalam variabel akhir.
Menentukan nama argumen adalah opsional. Perintah menyimpan input pengguna ke dalam $REPLY variabel secara default.
Opsi baca Bash
Bash read perintah dilengkapi dengan banyak opsi untuk mengontrol input pengguna. Beberapa opsi tidak memerlukan parameter tambahan, sementara yang lain memiliki parameter wajib.
Tabel di bawah ini menunjukkan semua opsi perintah yang mungkin dan deskripsinya.
| Opsi | Deskripsi |
|---|---|
-a <array> | Menetapkan urutan kata yang disediakan ke variabel bernama <array> . |
-d <delimiter> | Membaca satu baris hingga <delimiter> . yang disediakan bukannya baris baru. |
-e | Memulai sesi shell interaktif untuk mendapatkan baris yang akan dibaca. |
-i <prefix> | Menambahkan teks awal sebelum membaca baris sebagai awalan. |
-n <number> | Kembali setelah membaca jumlah karakter yang ditentukan sambil menghormati pembatas untuk mengakhiri lebih awal. |
-N <number> | Kembali setelah membaca jumlah karakter yang ditentukan, mengabaikan pembatas. |
-p <prompt> | Mengeluarkan string prompt sebelum membaca input pengguna. |
-r | Nonaktifkan garis miring terbalik untuk keluar dari karakter. |
-s | Tidak menggemakan input pengguna. |
-t <time> | Waktu perintah habis setelah waktu yang ditentukan dalam hitungan detik. |
-u <file descriptor> | Baca dari deskriptor file alih-alih input standar. |
Lanjutkan membaca untuk melihat cara membaca perintah bekerja melalui berbagai contoh.
Contoh baca Bash
read fungsi perintah tanpa argumen atau opsi apa pun. Untuk menguji perintah, ikuti langkah-langkah di bawah ini:
1. Buka terminal.
2. Tulis perintah dan tekan Enter :
read
Prompt menunggu input pengguna.
3. Ketik kalimat dan tekan Enter .
Terminal kembali ke keadaan normal.
4. Ambil pesan dengan perintah echo:
echo $REPLY
$REPLY variabel menyimpan read pesan perintah.
Di bawah ini adalah contoh yang menunjukkan kasus penggunaan yang lebih kompleks untuk read . Bash perintah.
Argumen
Simpan input pengguna ke dalam variabel tertentu dengan memberikan argumen:
read input Ambil pesan dengan:
echo $input
Atau, bagi input pengguna menjadi variabel yang berbeda dengan menambahkan beberapa argumen.
Misalnya:
read var1 var2 Masukan pengguna dibagi menjadi kata-kata individual. Ambil dengan:
echo $var1
echo $var2
Ketika input pengguna memiliki lebih banyak kata daripada variabel, kata-kata tambahan ditugaskan ke variabel yang terakhir disediakan:
read var1 var2 foo bar baz echo $var1
echo $var2
Jika ada lebih sedikit kata daripada variabel, variabel yang tersisa kosong.
Pemipaan
Piping mengambil output standar dari satu perintah dan mem-parsingnya sebagai input standar untuk proses lain. Gunakan echo dan menyalurkan informasi ke read untuk parsing segera. Misalnya:
echo "Hello world!" | (read var1 var2; echo $var1; echo $var2)
Tanda kurung membuat subkulit dengan banyak perintah, dan variabel individual dicetak ke konsol.
Inidok
Cara lain untuk memasukkan teks ke dalam read perintah menggunakan notasi heredoc. Misalnya:
read var1 var2 <<< "Hello world!"
echo $var1
echo $var2
read perintah mengharapkan literal aliran input, dan pengidentifikasi pengalihan (<<< ) memasukkan string ini.
Pembatas
read perintah mendefinisikan dua jenis pembatas:
1. Pembatas untuk read memerintah.
Secara default, menekan Enter (baris baru) mengakhiri perintah. Tambahkan -d tag dan berikan pembatas yang berbeda dalam tanda kutip untuk mengakhiri secara berbeda.
Misalnya:
read -d "-"
Alih-alih baris baru, pembatas baru adalah tanda hubung (- ) alih-alih baris baru. Perintah berakhir ketika mencapai pembatas, mengabaikan jumlah argumen. Tanggapan di $REPLY atau variabel yang disediakan menyimpan input pengguna tanpa tanda hubung (- ).
2. Pembatas untuk memisahkan bidang.
Variabel $IFS (Pemisah Bidang Internal) menyimpan pembatas kata. Nilai default yang digunakan untuk memisahkan kata adalah spasi " ". Setel $IFS variabel ke nilai yang berbeda untuk mengontrol perilaku ini.
Misalnya, untuk memisahkan kata dengan tanda hubung, gunakan:
IFS="-"
echo "Hello-world!" | (read var1 var2; echo $var1; echo $var2)
Tambahkan pemisah yang berbeda untuk membagi bidang dengan nilai yang berbeda:
IFS="-_"
echo "Hello_world-!" | (read var1 var2 var3; echo $var1; echo $var2; echo $var3)
Pemisah memiliki panjang satu karakter, dan $IFS mengambil setiap pembagi yang disebutkan satu per satu.
Cepat
Gunakan perintah baca untuk membuat petunjuk interaktif. Tambahkan -p tag dan berikan teks prompt, misalnya:
read -p "Enter your username: " username
Teks prompt dicetak dan memerlukan input pengguna. Teks disimpan ke variabel $username .
echo Your username is $username.
Gunakan -p opsi dalam skrip Bash untuk bekerja dengan pembuatan cepat.
Sembunyikan Masukan Pengguna
read perintah menawarkan -s tag untuk menyembunyikan input informasi sensitif. Kasus penggunaan yang umum adalah menggabungkan -s dengan -p tag untuk membuat prompt kata sandi.
Misalnya:
read -p "Enter your password: "$'\n' -s password Masukan pengguna tidak terlihat. Namun, menggemakan pesan akan menampilkan kata sandi:
echo $password
Berhati-hatilah dengan perilaku ini saat menggunakan read dalam skrip yang meminta kata sandi.
Tetapkan Batas Karakter
Perintah read menawarkan dua opsi saat membatasi jumlah karakter untuk input pengguna:
1. Gunakan -n pilihan dan memberikan nomor untuk mengatur batas karakter. Misalnya:
read -n 3
Tekan Enter setelah satu karakter untuk mengakhiri perintah sebelum mencapai batas karakter. Tanpa menekan Enter , perintah keluar secara otomatis setelah tiga karakter.
2. Gunakan -N opsi dan berikan nomor untuk mengatur batas karakter sambil mengabaikan pembatas. Misalnya:
read -N 3
Menekan Enter tidak mengakhiri perintah. Namun, penekanan tombol dihitung sebagai karakter.
Tetapkan Batas Waktu
Setel batas waktu pada read untuk membatasi waktu yang dibutuhkan untuk memasukkan teks:
read -t 5 Perintah secara otomatis berakhir setelah batas waktu yang ditentukan.
Array
Daripada menggunakan variabel individual untuk menyimpan string, tambahkan -a opsi untuk menyimpan input dalam array. Misalnya:
read -a array <<< "Hello world!" Ambil elemen array dengan:
echo ${array[0]}
echo ${array[1]}
Atau, gunakan perulangan for untuk melakukan iterasi melalui array.
Karakter Lolos dan Garis Miring Balik
read perintah memungkinkan pemisahan input panjang menjadi beberapa baris menggunakan garis miring terbalik. Misalnya:
read password prompt terminal output Hello \
world\
!
Menekan Enter setelah garis miring terbalik tidak mengakhiri perintah dan mengharapkan masukan lebih lanjut pada baris berikut.
Untuk mengabaikan interpretasi garis miring terbalik, tambahkan -r pilihan:
read -r <<< "Hello\world!"; echo $REPLY
Gunakan opsi ini saat mengurai jalur file dan teks apa pun yang memiliki arti garis miring terbalik.