What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Sadržaj:
Prilikom pisanja skripti školjki možda ćete naići na situaciju da trebate proslijediti višeslojni blok teksta ili koda interaktivnoj naredbi, kao što su
tee
,
cat
ili
sftp
.
U Bashu i ostalim školjkama poput Zsh-a, dokument Here (Heredoc) je vrsta preusmjeravanja koja vam omogućuje da u naredbu proslijedite više linija unosa.
Sintaksa pisanja HereDoc ima sljedeći oblik:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Prvi redak započinje neobaveznom naredbom, a slijedi je poseban operator preusmjeravanja
<<
i razlučujući identifikator.- Možete koristiti bilo koji niz kao razgraničavajući identifikator, najčešće se koriste EOF ili END.Ako je razgraničavajući identifikator citiran, ljuska će zamijeniti sve varijable, naredbe i posebne znakove prije nego što naredne redove dokumenta ovdje prenese u naredbu. minus minus operatoru preusmjeravanja
<<-
, uzrokovat će zanemarivanje svih vodećih znakova kartice. To vam omogućuje korištenje uvlačenja pri pisanju ovdje dokumenata u skripti školjki. Vodeći znakovi bijelog prostora nisu dopušteni, samo kartica.
- Možete koristiti bilo koji niz kao razgraničavajući identifikator, najčešće se koriste EOF ili END.Ako je razgraničavajući identifikator citiran, ljuska će zamijeniti sve varijable, naredbe i posebne znakove prije nego što naredne redove dokumenta ovdje prenese u naredbu. minus minus operatoru preusmjeravanja
Osnovni primjeri Heredoca
U ovom ćemo dijelu pogledati neke osnovne primjere kako koristiti heredoc.
Heredoc se najčešće koristi u kombinaciji s mačjom naredbom.
U sljedećem primjeru prenosimo dva retka teksta koji sadrže varijablu okoline i naredbu za
cat
koristeći dokument ovdje.
cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF
Kao što možete vidjeti iz rezultata ispod, i varijabla i izlaz naredbe su zamijenjeni:
The current working directory is: /home/linuxize You are logged in as: linuxize
Da vidimo što će se dogoditi ako razdjelnik priložimo u pojedinačne ili dvostruke navodnike.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Možete primijetiti da kad je citiran razdjelnik, ljuska ne provodi proširenje parametara i zamjenu naredbi.
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.
Umjesto prikaza rezultata na zaslonu, možete ga preusmjeriti u datoteku pomoću operatora
>
,
>>
.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Ako file.txt ne postoji, kreirat će se. Kada koristite
>
datoteka će se prebrisati, a
>>
će izlaz dodati datoteci.
Ulaz heredoc-a također se može presložiti. U sljedećem primjeru naredba
sed
zamijenit će sve instance znaka
l
s
e
:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
Da biste napisali pipetove podatke u datoteku:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
Korištenje Heredoca sa SSH
Upotreba Heredoca jedan je od najpovoljnijih i najlakših načina za izvršavanje više naredbi na udaljenom sustavu preko SSH-a.
Pri korištenju razgraničara bez citata obavezno izbjegavajte sve varijable, naredbe i posebne znakove jer će se u protivnom lokalno interpolirati:
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
Možda ćete također htjeti postaviti SSH ključ provjere autentičnosti i povezati se sa svojim Linux poslužiteljima bez unosa lozinke.
Zaključak
U ovom smo priručniku naučili što je
heredoc
i kako ga koristiti u svojim skriptama ljuske.
Microsoft Research Azija domaćini Gates na 10 godina Bash

Microsoft Research Asia je narasla od desetak ljudi 1998. godine na više od 350 desetljeća kasnije.
Kako pokrenuti Bash na Ubuntu na Windows 10

Omogućivanje podsustava sustava Windows za Linux omogućit će vam da pokrenete Bash na Ubuntu na Windows 10, Bash skripte , Linux alati naredbenog retka, prvi alati za Linux
Bash nizovi

Nizovi su jedna od najčešće korištenih i temeljnih struktura podataka. U ovom ćemo članku pokriti Bash nizove i objasniti ih kako ih koristiti u vašim Bash skriptama.