- Home
- »
- Scripting & Automasi
- »
- Bash Basic
- »
- Bash #46 Redirecting to Multiple Outputs
Share:
Table of Contents

🖥️ Pengantar
Sering kali dalam scripting Bash, kita ingin mengarahkan output ke lebih dari satu tempat secara bersamaan, misalnya:
Menampilkan output ke layar terminal sekaligus menyimpannya ke file log.
Mengalihkan output ke beberapa file untuk analisis lebih lanjut.
Memantau proses secara real-time sambil merekam hasilnya.
Salah satu teknik yang paling umum digunakan untuk melakukan ini adalah dengan perintah tee, yang memungkinkan kita menduplikasi output ke beberapa tujuan sekaligus.
Artikel ini akan membahas:
Apa Itu Redirection ke Banyak Output? – Konsep dasar redirection ganda.
Menggunakan tee untuk Menduplikasi Output – Implementasi dasar dan contoh.
Mengombinasikan Redirection dengan tee – Penggunaan lanjut.
Mengarahkan Output ke Beberapa File dengan tee – Studi kasus.
Praktik Terbaik dalam Menggunakan tee dan Redirection – Teknik optimasi.
Mari kita mulai! 🚀
📌 1. Apa Itu Redirection ke Banyak Output?
Dalam Bash, output dari perintah biasanya hanya ditampilkan di satu tempat, seperti layar terminal atau file. Dengan menggunakan teknik redirection ganda, kita dapat menyalin output ke beberapa tujuan sekaligus.
🔹 Manfaat Redirection Ganda:
Logging real-time saat menjalankan skrip.
Menganalisis output di beberapa file log.
Membantu debugging dengan menyimpan rekaman eksekusi.
📌 2. Menggunakan tee untuk Menduplikasi Output
Perintah tee memungkinkan kita mengalihkan output ke beberapa tujuan.
🔹 Sintaks Dasar tee:
command | tee file.log |
📌 Catatan:
command → Perintah yang menghasilkan output.
tee file.log → Menampilkan output ke layar dan menyimpannya ke file.log.
🔹 Contoh Penggunaan tee:
echo “Hello, Bash!” | tee output.txt |
📌 Catatan:
Output tetap ditampilkan di terminal.
Salinan output juga disimpan di output.txt.
📌 3. Mengombinasikan Redirection dengan tee
Selain menyimpan output ke satu file, tee juga bisa digunakan dengan beberapa file sekaligus.
🔹 Mengalihkan Output ke Beberapa File:
echo “Logging multiple outputs” | tee log1.txt log2.txt |
📌 Catatan:
Output akan ditampilkan di terminal, log1.txt, dan log2.txt secara bersamaan.
🔹 Menyimpan Log Tanpa Menimpa File:
echo “Appending logs” | tee -a logfile.txt |
📌 Catatan:
Opsi -a digunakan untuk menambahkan (append) ke file yang sudah ada.
📌 4. Mengarahkan Output ke Beberapa File dengan tee
Dalam kasus tertentu, kita ingin menangkap stdout dan stderr sekaligus menggunakan tee.
🔹 Mengarahkan stdout dan stderr ke File Log:
command 2>&1 | tee log.txt |
📌 Catatan:
2>&1 menggabungkan error (stderr) dengan output (stdout).
tee log.txt akan menyimpan hasilnya ke log.txt dan tetap menampilkannya di terminal.
🔹 Menyimpan Output dan Error ke File yang Berbeda:
command > >(tee output.log) 2> error.log |
📌 Catatan:
Output utama dikirim ke output.log dan tetap ditampilkan di terminal.
Error dialihkan ke error.log.
📌 5. Praktik Terbaik dalam Menggunakan tee dan Redirection
✅ Gunakan tee untuk Logging Real-Time:
./script.sh | tee script.log |
✅ Gabungkan stdout dan stderr untuk Debugging Lebih Baik:
./script.sh 2>&1 | tee debug.log |
✅ Gunakan tee -a untuk Mencegah Log Tertimpa:
echo “Menambah log baru” | tee -a system.log |
✅ Mengarahkan Output ke Beberapa File untuk Analisis:
./monitor.sh | tee live.log backup.log |
📌 Kesimpulan
Menggunakan tee dalam Bash memungkinkan kita menduplikasi output ke beberapa tujuan secara efisien. Dalam artikel ini, kita telah membahas:
✅ Cara menggunakan tee untuk menyimpan dan menampilkan output secara bersamaan. ✅ Teknik menggabungkan stdout dan stderr dengan tee. ✅ Penggunaan tee untuk logging real-time dan debugging. ✅ Praktik terbaik untuk redirection ke beberapa output dalam Bash scripting.
Artikel Selanjutnya: 🔄 History Expansion – Menggunakan ekspansi riwayat perintah (!!, !n, !string) untuk mempercepat penulisan perintah dalam Bash.
📚 Daftar Pustaka
Shotts, W. E. (2019). The Linux Command Line: A Complete Introduction. No Starch Press.
GNU Bash Manual (2023). GNU Bash Reference Manual. Retrieved from https://www.gnu.org/software/bash/manual/