What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Isi kandungan:
Semasa menulis skrip shell, anda mungkin berada dalam keadaan di mana anda perlu lulus blok teks atau kod berbilang multiline kepada perintah interaktif, seperti
tee
,
cat
, atau
sftp
.
Dalam Bash dan cengkerang lain seperti Zsh, satu dokumen Berikut (Heredoc) adalah sejenis pengalihan yang membolehkan anda melewati beberapa baris input kepada arahan.
Sintaks penulisan HereDoc mengambil bentuk berikut:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Baris pertama bermula dengan perintah pilihan diikuti oleh operator pengalihan khas
<<dan pengecam pengecualian.- Anda boleh menggunakan rentetan sebagai pengecam pengecualian, yang paling biasa digunakan ialah EOF atau END.Jika pengecam pengecualian tidak disebutkan, shell akan menggantikan semua pembolehubah, arahan dan aksara khusus sebelum melewatkan baris dokumen di sini. tolak tanda kepada operator pengalihan
<<-, akan menyebabkan semua watak tab terkemuka diabaikan. Ini membolehkan anda menggunakan indentasi apabila menulis di sini-dokumen dalam skrip shell. Watak ruang kosong utama tidak dibenarkan, hanya tab.
Blok dokumen di sini boleh mengandungi rentetan, pembolehubah, arahan dan sebarang jenis input lain. Barisan terakhir berakhir dengan pengecam pengecualian. Ruang putih di depan pembatas tidak dibenarkan. - Anda boleh menggunakan rentetan sebagai pengecam pengecualian, yang paling biasa digunakan ialah EOF atau END.Jika pengecam pengecualian tidak disebutkan, shell akan menggantikan semua pembolehubah, arahan dan aksara khusus sebelum melewatkan baris dokumen di sini. tolak tanda kepada operator pengalihan
Contoh-contoh asas Heredoc
Dalam bahagian ini, kita akan melihat beberapa contoh asas cara menggunakan heredoc.
Heredoc paling sering digunakan dalam kombinasi dengan perintah kucing.
Dalam contoh berikut, kami melewati dua baris teks yang mengandungi pembolehubah persekitaran dan perintah untuk
cat
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, kedua-dua pemboleh ubah dan output arahan diganti:
The current working directory is: /home/linuxize You are logged in as: linuxize
Mari lihat apa yang akan berlaku jika kita melampirkan pemisah dalam petikan tunggal atau berganda.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Anda dapat melihat bahawa apabila pembatas dipetik tidak ada pengembangan parameter dan penggantian 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.
Daripada memaparkan output pada skrin anda boleh mengalihkannya ke fail menggunakan operator
>>
,
>>
.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Jika file.txt tidak wujud, ia akan diwujudkan. Apabila menggunakan
>
fail akan ditimpa, sementara
>>
akan menambahkan output ke fail tersebut.
Input heredok juga boleh disalurkan. Dalam contoh berikut, perintah
sed
akan menggantikan semua contoh watak
l
dengan
e
:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
Untuk menulis data paip ke fail:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
Menggunakan Heredoc dengan SSH
Menggunakan Heredoc adalah salah satu cara yang paling mudah dan paling mudah untuk melaksanakan beberapa arahan pada sistem jauh melalui SSH.
Apabila menggunakan pemisah yang tidak disebutkan pasti pastikan anda melarikan diri dari semua pembolehubah, arahan dan aksara khas jika tidak, mereka akan diinterpolasi di dalam negara:
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 juga boleh menyiapkan pengesahan berasaskan kunci SSH dan menyambung ke pelayan Linux anda tanpa memasukkan kata laluan.
Kesimpulannya
Dalam panduan ini, anda telah mempelajari apa yang
heredoc
dan cara menggunakannya dalam skrip shell anda.
Cisco Security Updates Bash Router Squash
Syarikat rangkaian telah mengeluarkan patch IOS dua kali setahun, posting lapan kemas kini
Bagaimana untuk menjalankan Bash pada Ubuntu pada Windows 10
Mengaktifkan Windows Subsystem untuk Linux akan membolehkan anda menjalankan Bash pada Ubuntu pada Windows 10, skrip Bash , Alat-alat baris arahan Linux, alat pertama Linux.
Arahan Bash
Array adalah salah satu daripada struktur data yang paling digunakan dan asas. Dalam artikel ini, kami akan menampung aras Bash, dan menerangkan cara menggunakannya dalam skrip Bash anda.







