What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Daftar Isi:
Saat menulis skrip shell, Anda mungkin berada dalam situasi di mana Anda harus meneruskan blok teks atau kode multiline ke perintah interaktif, seperti
tee
,
cat
, atau
sftp
.
Di Bash dan shell lain seperti Zsh, dokumen Here (Heredoc) adalah jenis pengalihan yang memungkinkan Anda untuk melewati beberapa baris input ke sebuah perintah.
Sintaks penulisan HereDoc mengambil bentuk berikut:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Baris pertama dimulai dengan perintah opsional diikuti oleh operator pengalihan khusus
<<
dan pengidentifikasi pembatas.- Anda dapat menggunakan string apa pun sebagai pengidentifikasi pembatas, yang paling umum digunakan adalah EOF atau END. Jika pengidentifikasi pembatas tidak dikutip, shell akan mengganti semua variabel, perintah dan karakter khusus sebelum meneruskan baris dokumen di sini ke perintah. tanda minus ke operator redirection
<<-
, akan menyebabkan semua karakter tab utama diabaikan. Ini memungkinkan Anda untuk menggunakan indentasi saat menulis di sini-dokumen dalam skrip shell. Karakter spasi putih terkemuka tidak diizinkan, hanya tab.
- Anda dapat menggunakan string apa pun sebagai pengidentifikasi pembatas, yang paling umum digunakan adalah EOF atau END. Jika pengidentifikasi pembatas tidak dikutip, shell akan mengganti semua variabel, perintah dan karakter khusus sebelum meneruskan baris dokumen di sini ke perintah. tanda minus ke operator redirection
Contoh Dasar Heredoc
Pada bagian ini, kita akan melihat beberapa contoh dasar bagaimana menggunakan heredoc.
Heredoc paling sering digunakan dalam kombinasi dengan perintah cat.
Dalam contoh berikut, kami melewati dua baris teks yang berisi variabel lingkungan dan perintah untuk menggunakan dokumen di sini.
cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF
Seperti yang Anda lihat dari output di bawah ini, variabel dan output perintah diganti:
The current working directory is: /home/linuxize You are logged in as: linuxize
Mari kita lihat apa yang akan terjadi jika kita menyertakan pembatas dalam tanda kutip tunggal atau ganda.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Anda dapat melihat bahwa ketika pembatas dikutip tidak ada ekspansi parameter dan substitusi perintah dilakukan oleh shell.
The current working directory is: $PWD You are logged in as: $(whoami)
if true; then cat <<- EOF Line with a leading tab. EOF fi
Line with a leading tab.
Alih-alih menampilkan output di layar, Anda dapat mengarahkannya ke file menggunakan operator
>
,
>>
.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Jika file.txt tidak ada, itu akan dibuat. Saat menggunakan
>
file akan ditimpa, sedangkan
>>
akan menambahkan output ke file.
Input heredoc juga dapat disalurkan. Dalam contoh berikut ini perintah
sed
akan mengganti semua instance dari karakter
l
dengan
e
:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
Untuk menulis data yang disalurkan ke file:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
Menggunakan Heredoc dengan SSH
Menggunakan Heredoc adalah salah satu cara paling mudah dan termudah untuk menjalankan banyak perintah pada sistem jarak jauh melalui SSH.
Saat menggunakan pembatas tanpa tanda kutip, pastikan Anda lolos dari semua variabel, perintah, dan karakter khusus jika tidak mereka akan diinterpolasi secara lokal:
ssh -T [email protected] << EOF echo "The current local working directory is: $PWD" echo "The current remote working directory is: \$PWD" EOF
The current local working directory is: /home/linuxize The current remote working directory is: /home/user
Anda mungkin juga ingin mengatur otentikasi berbasis kunci SSH dan terhubung ke server Linux Anda tanpa memasukkan kata sandi.
Kesimpulan
Dalam panduan ini, Anda telah mempelajari apa itu
heredoc
dan bagaimana menggunakannya dalam skrip shell Anda.
Microsoft Research Asia Menyelenggarakan Gerbang di Bash 10 Tahun

Microsoft Research Asia telah berkembang dari belasan orang pada tahun 1998 menjadi lebih dari 350 satu dekade kemudian.
Cara menjalankan Bash di Ubuntu pada Windows 10

Mengaktifkan Windows Subsystem untuk Linux akan memungkinkan Anda menjalankan Bash di Ubuntu pada Windows 10, skrip Bash , Linux command-line tools, Linux-first tools.
Array bash

Array adalah salah satu struktur data yang paling banyak digunakan dan mendasar. Dalam artikel ini, kami akan membahas array Bash, dan menjelaskan cara menggunakannya dalam skrip Bash Anda.