What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Sisällysluettelo:
Kirjoitettaessa komentosarjoja voi olla tilanteessa, jossa joudut siirtämään monirivisen teksti- tai koodilohkon interaktiiviselle komennolle, kuten
tee
,
cat
tai
sftp
.
Bashissa ja muissa kuorissa, kuten Zsh, Here-asiakirja (Heredoc) on uudentyyppinen uudelleenohjaus, jonka avulla voit siirtää useita syöttöriviä komentoon.
HereDocin kirjoittamisen syntaksi on seuraavassa muodossa:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Ensimmäinen rivi alkaa valinnaisella komennolla, jota seuraa erityinen uudelleenohjausoperaattori
<<ja rajaava tunniste.- Voit käyttää mitä tahansa merkkijonoa rajaavana tunnisteena. Yleisimmin käytettyjä ovat EOF tai END.Jos rajaava tunniste on lainaamaton, kuori korvaa kaikki muuttujat, komennot ja erikoismerkit ennen kuin siirrät here-document -rivit komentoon.A miinusmerkki uudelleenohjausoperaattorille
<<-, aiheuttaa kaikkien johtavien välilehtimerkkien huomioimisen. Tämän avulla voit käyttää sisennystä kirjoitettaessa here-asiakirjoja komentosarjoihin. Johtavat välilyönnit eivät ole sallittuja, vain välilehti.
Tässä-asiakirjalohko voi sisältää merkkijonoja, muuttujia, komentoja ja mitä tahansa muuta tulotyyppiä. Viimeinen rivi päättyy rajaavalle tunnisteelle. Valkoinen tila erottimen edessä ei ole sallittua. - Voit käyttää mitä tahansa merkkijonoa rajaavana tunnisteena. Yleisimmin käytettyjä ovat EOF tai END.Jos rajaava tunniste on lainaamaton, kuori korvaa kaikki muuttujat, komennot ja erikoismerkit ennen kuin siirrät here-document -rivit komentoon.A miinusmerkki uudelleenohjausoperaattorille
Perusheredoc-esimerkkejä
Tässä osassa tarkastellaan joitain perus esimerkkejä siitä, kuinka heredocia käytetään.
Heredocia käytetään useimmiten yhdessä kissakomennon kanssa.
Seuraavassa esimerkissä lähetämme kaksi tekstiriviä, jotka sisältävät ympäristömuuttujan ja komennon
cat
käyttämällä tätä asiakirjaa.
cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF
Kuten alla olevasta tuotosta voidaan nähdä, sekä muuttuja että komento ulostulo korvataan:
The current working directory is: /home/linuxize You are logged in as: linuxize
Katsotaan mitä tapahtuu, jos suljemme erottimen yksittäisissä tai kaksinkertaisissa lainausmerkeissä.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Voit huomata, että kun rajaajaa lainataan, parametri ei laajennu ja komento korvataan kuorella.
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.
Sen sijaan, että tuotos näytetään näytöllä, voit ohjata sen tiedostoon
>
,
>>
-operaattoreilla.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Jos tiedosto.txt ei ole olemassa, se luodaan. Kun käytät
>
tiedosto korvataan, kun taas
>>
lisää tulosteen tiedostoon.
Heredoc-tulo voidaan myös piippata. Seuraavassa esimerkissä
sed
komento korvaa kaikki
l
merkin esiintymät
e
: llä:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
Piped-datan kirjoittaminen tiedostoon:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
Heredocin käyttö SSH: n kanssa
Heredocin käyttö on yksi kätevimmistä ja helpoimmista tavoista suorittaa useita komentoja etäjärjestelmässä SSH: n kautta.
Kun käytät noteeraamattomia rajaajia, varmista, että vältät kaikki muuttujat, komennot ja erikoismerkit, muuten ne interpoloidaan paikallisesti:
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
Voit myös määrittää SSH-avainpohjaisen todennuksen ja muodostaa yhteyden Linux-palvelimiin antamatta salasanaa.
johtopäätös
Tässä oppaassa olet oppinut, mikä on
heredoc
ja kuinka sitä voidaan käyttää komentosarjoissa.
Bash-taulukot
Taulukot ovat yksi käytetyimmistä ja perusteellisimmista tietorakenteista. Tässä artikkelissa kerrotaan Bash-taulukot ja selitetään, kuinka niitä käytetään Bash-skripteissäsi.
Bash silmukasta
Bash-komentosarjoissa on 3 perussilmukkakonstruktiota silmukalle, silmukalle ja silmukkaan saakka. Tässä opetusohjelmassa käsittelemme silmukoiden perusteet Bashissa sekä katkoksia ja jatkamme lauseita silmukan virtauksen muuttamiseksi.
Bash: liitä tiedostoon
Linuxissa on useita tapoja liittää teksti tiedostoon. Tämä artikkeli selittää joitain niistä.







