Kas yra čia esantis dokumentas?

Kalbant apie kompiuterius ir kompiuterių programavimą, čia esantis dokumentas yra teksto sąrašas, naudojamas apibrėžti įvestį, kuri turi būti perduodama programai naudojant specialų operatorių, kad būtų lengviau perduoti išskirtinai ilgus komandų ar teksto blokus. „Here document“ arba „heredoc“ yra labiau bendras terminas, nes tikslus čia dokumento veikimo principas ir tai, kas jame gali būti, priklauso nuo operacinės sistemos, programos ar programavimo kalbos. Nepaisant to, ką reiškia pavadinimas, čia esantis dokumentas paprastai nėra atskiras failas, o yra teksto blokas scenarijuje arba kažkaip įvestas arba įterptas tiesiai programos komandos pabaigoje. Čia dokumentas dažniausiai naudojamas, kai programos vykdomos naudojant scenarijų arba paketinį failą iš komandinės eilutės, kur heredoc pateikia arba programos vykdymo instrukcijų sąrašą, arba įvesties įvestį programai apdoroti. Atsižvelgiant į daugelį veiksnių, čia esantis dokumentas gali būti paprastas žodžių sąrašas arba jame gali būti sudėtingų kintamųjų arba programavimo kodo, kurį operacinė sistema arba tikslinė programa gali iššifruoti.

Paprasčiausiai čia esantis dokumentas yra tik teksto sąrašas, kuriame yra formatavimo simbolių, pvz., skirtukų, karietos grąžinimo ir eilučių lūžių. Tai patogus būdas perduoti argumentus programai, kuri vykdoma iš komandinės eilutės, ypač jei naudojamas įpakavimo failas, pvz., scenarijus arba paketinis failas. Heredoce esantis tekstas siunčiamas vykdomajai programai taip, lyg vartotojas jį įvestų tiksliai taip, kaip atrodo. Tai leidžia vėl ir vėl naudoti vieną heredoc, kad programai būtų suteikta ta pati įvestis, kad ji galėtų pakartotinai atlikti tas pačias užduotis, nereikalaujant, kad vartotojas iš naujo viską įvestų rankiniu būdu.

Vieną pavyzdį, kaip veikia čia esantis dokumentas, galima pamatyti naudojant paprastą komandų eilutės programą sendmail, kuri siunčia el. Kai vykdoma, sendmail programa pirmiausia prašo vartotojo įvesti paskirties el. pašto adresą; tada prašoma įvesti el. laiško temą ir galiausiai el. laiško tekstą. Jei vykdoma iš komandinės eilutės, vartotojas atsakytų į kiekvieną raginimą įvesdamas informaciją, paspausdamas grįžimo klavišą ir laukdamas, kol programa atsakys. Kai įpakavimo faile naudojamas heredoc, visa informacija, kurią reikia pateikti sendmail programai, gali būti įvesta iš anksto, įskaitant grįžimo klavišų paspaudimus, ir išsaugota įpakavimo faile. Tokiu būdu, kai sendmail programa vykdoma su heredoc, įvestis automatiškai paduodama programai ir išsiunčiamas el. laiškas, vartotojui nereikalaujant nieko daugiau.