Materi
Heredoc mengalirkan beberapa baris teks ke sebuah perintah sampai bertemu baris penanda. Bentuk cat > berkas <<EOF diikuti baris-baris isi lalu EOF menulis semua baris itu ke berkas. Nama penandanya bebas; EOF hanya kebiasaan. Di terminal, bash menampilkan prompt > selama penandanya belum ditulis.
cat > /opt/kasir/jam-buka.txt <<EOF
Senin-Jumat 08.00-21.00
Sabtu 09.00-15.00
EOFAda satu perbedaan penting. Tanpa kutip (<<EOF), bash mengganti $VARIABEL, $(perintah), dan $((aritmetika)) di dalam isi saat heredoc dibaca. Dengan penanda berkutip (<<'EOF'), isi ditulis persis seperti diketik. Karena itu, skrip yang ditulis lewat heredoc memakai <<'EOF': variabel seperti $1 dan $(date +%F) harus sampai ke berkas skrip apa adanya, lalu dihitung setiap kali skripnya dijalankan, bukan sekali saat skripnya ditulis. Bentuk <<-EOF membuang tab di awal baris isi.
cat > cadang-konfigurasi.sh <<'EOF'
#!/bin/bash
TUJUAN=~/cadangan/konfigurasi-$(date +%F)
mkdir -p "$TUJUAN"
cp -r /opt/kasir/conf "$TUJUAN"/ 2>> ~/cadangan/galat.log || exit 1
echo "tersimpan di $TUJUAN"
EOF
chmod 755 cadang-konfigurasi.shSkrip cadangan di atas memakai unsur dari pelajaran sebelumnya: date +%F mencetak tanggal berbentuk 2026-09-22 sehingga setiap hari punya folder sendiri yang urut secara abjad; mkdir -p tidak mengeluh bila foldernya sudah ada; cp -r menyalin folder beserta isinya; 2>> menambahkan pesan galat ke berkas log; dan || exit 1 menghentikan skrip dengan kode gagal bila penyalinan gagal. Di server sungguhan skrip seperti ini dijadwalkan dengan cron agar jalan otomatis setiap malam; cron tidak tersedia di simulator.