Gambaran Umum
Artikel ini membahas penggunaan esensial dari perintah read yang sangat penting untuk menangani input interaktif pengguna dan penguraian data teks saat menulis skrip shell Bash Linux. Anda dapat menguasai segalanya mulai dari penanganan input dasar, masking kata sandi (-s), batas waktu (-t), pemisahan pemisah (IFS), hingga teknik pemrosesan file baris demi baris berbasis loop while yang paling sering digunakan dalam praktik kerja.
1. Dasar Perintah read, Prompt (-p), dan Pengaturan Nilai Default
Jalankan perintah mkdir -p ~/read-demo && cd ~/read-demo untuk membuat direktori khusus untuk latihan perintah read dan berpindah ke dalamnya.

Perintah read membaca satu baris dari input standar (standard input) dan menyimpannya ke dalam variabel. Opsi -p digunakan untuk menampilkan pesan panduan pengguna, dan sintaks ${nama_variabel:-nilai_default} dapat dimanfaatkan untuk menetapkan nilai default pengganti ketika nilainya kosong.
Pada hasil eksekusi, karena input tidak diberikan langsung ke perintah read, variabel username tetap dalam keadaan kosong sehingga nilai default guest ditampilkan sesuai sintaks ${username:-guest}.
⚙️ [Opsi Utama]
-p : Menentukan string prompt panduan yang akan ditampilkan di layar sebelum menerima input.-s : Mengaktifkan mode rahasia yang tidak menampilkan karakter input di layar saat memasukkan informasi sensitif seperti kata sandi.-t : Mengatur batas waktu tunggu input (detik) dan mengakhiri input jika waktu yang ditentukan telah berlalu.-n : Hanya menerima sejumlah karakter yang ditentukan dan langsung berakhir tanpa perlu menekan tombol Enter.-r : Membaca karakter garis miring terbalik (\) apa adanya tanpa menginterpretasikannya sebagai karakter escape.-a : Memisahkan kata-kata yang dimasukkan berdasarkan spasi dan menyimpannya secara berurutan ke dalam variabel array.-d : Menentukan karakter pembatas (delimiter) sendiri untuk mengakhiri input sebagai pengganti karakter baris baru.

2. Masking Kata Sandi (-s) dan Penanganan Batas Waktu Input (-t)
Untuk melanjutkan latihan, jalankan perintah cd ~/read-demo untuk berpindah ke direktori ~/read-demo yang telah dibuat sebelumnya.

Input diterima dengan menyembunyikan tampilan layar menggunakan opsi -s dan memberikan batas waktu 5 detik menggunakan opsi -t 5.
Kata sandi berhasil dikirim dalam batas waktu yang ditentukan, sehingga kode status keluar ($?) ditampilkan sebagai 0.

3. Pemisahan Multi-Variabel dan Array Menggunakan Pemisah (IFS) dan Opsi -a
Untuk melanjutkan latihan, jalankan perintah cd ~/read-demo untuk berpindah ke direktori ~/read-demo yang telah dibuat sebelumnya.

Setelah menentukan pemisah bidang internal (IFS) sebagai koma (,), string format CSV yang dikirimkan melalui Here-String (<<<) dibaca dengan perintah read dan disimpan secara terpisah ke dalam variabel col1, col2, dan col3.
Hasil eksekusi menunjukkan nama server, alamat IP, dan nama layanan yang ada pada string berhasil dipisahkan dan ditampilkan ke masing-masing variabel sesuai dengan pemisah yang ditentukan.

Dengan mengatur pemisah (IFS) menjadi titik dua (:) dan menggunakan opsi -a, string format /etc/passwd disimpan secara terpisah ke dalam variabel array user_info.
Nama akun (root) pada indeks ke-0 array dan path login shell (/bin/bash) pada indeks ke-6 berhasil diekstraksi dan ditampilkan dengan benar.
![bash -c ‘IFS=":" read -ra user_info «< “root:x:0:0:root:/root:/bin/bash”; echo “계정명: ${user_info[0]}, 셸: ${user_info[6]}”’](/ubuntu/20261007_143401_98/captures/s03_c03_bash_-c__IFS_____read_-ra_user_info______root_x_0.png)
4. Inti Praktis: Pemrosesan File Baris demi Baris Berukuran Besar Menggunakan Loop while dan read -r
Untuk melanjutkan latihan, jalankan perintah cd ~/read-demo untuk berpindah ke direktori ~/read-demo yang telah dibuat sebelumnya.

Untuk latihan pemrosesan file baris demi baris, buat file contoh CSV servers.csv yang berisi nama server dan status operasi yang dipisahkan dengan koma.

Gunakan loop while bersama dengan perintah read -r dan tetapkan pemisah bidang internal (IFS) sebagai koma (,) untuk membaca setiap baris file servers.csv secara aman baris demi baris.
Hasil eksekusi menunjukkan nama server dan informasi status yang tercatat dalam file berhasil dimasukkan ke dalam variabel name dan status, lalu ditampilkan sesuai format.
![while IFS="," read -r name status; do echo “[상태 점검] $name 서버는 현재 $status 상태입니다.”; done < servers.csv](/ubuntu/20261007_143401_98/captures/s04_c03_while_IFS_____read_-r_name_status__do_echo___%EC%83%81%ED%83%9C_%EC%A0%90%EA%B2%80.png)
Sejauh ini, kita telah melihat secara ringkas mulai dari penggunaan dasar perintah read yang dapat dimanfaatkan dalam skrip shell Linux hingga teknik membaca file baris demi baris yang sering digunakan di lingkungan kerja nyata.
Berdasarkan berbagai opsi dan contoh yang dibahas hari ini, silakan coba tulis skrip otomatisasi interaktif Anda sendiri yang sesuai dengan kebutuhan.