What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Talaan ng mga Nilalaman:
Kapag nagsusulat ng mga script ng shell ay maaaring nasa isang sitwasyon kung saan kailangan mong magpasa ng isang multiline block ng teksto o code sa isang interactive na utos, tulad ng
tee
,
cat
, o
sftp
.
Sa Bash at iba pang mga shell tulad ng Zsh, ang isang dokumento na Narito (Heredoc) ay isang uri ng pag-redirect na nagbibigay-daan sa iyo upang makapasa ng maraming mga linya ng pag-input sa isang utos.
Ang syntax ng pagsulat ng HereDoc ay tumatagal ng sumusunod na form:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Ang unang linya ay nagsisimula sa isang opsyonal na utos na sinusundan ng espesyal na redirection operator
<<at ang delimiting identifier.- Maaari mong gamitin ang anumang string bilang isang delimiting identifier, ang pinaka-karaniwang ginagamit ay EOF o END.Kung ang delimiting identifier ay hindi nakuha, ang shell ay kapalit ng lahat ng mga variable, utos at mga espesyal na character bago maipasa ang mga linya ng dokumento na dito sa command.Ang isang minus sign sa redirection operator
<<-, ay magiging sanhi ng lahat ng nangungunang mga character na tab na hindi papansinin. Pinapayagan ka nitong gumamit ng indisyon kapag nagsusulat dito-mga dokumento sa mga script ng shell. Hindi pinapayagan ang nangungunang mga character ng whitespace, tab lamang.
Ang block na narito ng dokumento ay maaaring maglaman ng mga string, variable, utos at anumang iba pang uri ng input.Ang huling linya ay nagtatapos sa delimiting identifier. Hindi pinapayagan ang puting espasyo sa harap ng delimiter. - Maaari mong gamitin ang anumang string bilang isang delimiting identifier, ang pinaka-karaniwang ginagamit ay EOF o END.Kung ang delimiting identifier ay hindi nakuha, ang shell ay kapalit ng lahat ng mga variable, utos at mga espesyal na character bago maipasa ang mga linya ng dokumento na dito sa command.Ang isang minus sign sa redirection operator
Mga Pangunahing Hudyat na Heredoc
Sa seksyong ito, titingnan namin ang ilang mga pangunahing halimbawa kung paano gamitin ang heredoc.
Ang Heredoc ay madalas na ginagamit kasama ng utos ng pusa.
Sa sumusunod na halimbawa, ipinapasa namin ang dalawang linya ng teksto na naglalaman ng isang variable ng kapaligiran at isang utos na
cat
gamit ang isang dokumento dito.
cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF
Tulad ng nakikita mo mula sa output sa ibaba, pareho ang variable at ang output output ay nahalili:
The current working directory is: /home/linuxize You are logged in as: linuxize
Tingnan natin kung ano ang mangyayari kung isama namin ang delimiter sa solong o dobleng quote.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Maaari mong mapansin na kapag ang delimiter ay sinipi walang pagpapalawak ng parameter at pagpapalit ng command ay ginagawa ng 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.
Sa halip na ipakita ang output sa screen maaari mong mai-redirect ito sa isang file gamit ang
>
,
>>
operator.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Kung ang file.txt ay hindi umiiral ay malilikha ito. Kapag ginagamit ang
>
file ay mai-overwrite, habang ang
>>
ay magdagdag ng output sa file.
Ang heredoc input ay maaari ring mai-piped. Sa sumusunod na halimbawa ang
sed
utos ay papalit sa lahat ng mga pagkakataon ng
l
character na
e
:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
Upang isulat ang piped data sa isang file:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
Paggamit ng Heredoc kasama ang SSH
Ang paggamit ng Heredoc ay isa sa pinaka-maginhawa at pinakamadaling paraan upang maisagawa ang maraming mga utos sa isang malayuang sistema sa SSH.
Kapag gumagamit ng hindi hinihinging delimiter tiyaking nakatakas ka sa lahat ng mga variable, utos at mga espesyal na character kung hindi man sila ay magkakabukol sa lokal na lugar:
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
Maaaring gusto mo ring mag-set up ng isang pagpapatunay na batay sa SSH key at kumonekta sa iyong Linux server nang hindi pumapasok sa isang password.
Konklusyon
Sa gabay na ito, nalaman mo kung ano ang
heredoc
at kung paano gamitin ito sa iyong script ng shell.
Microsoft Research Asia Nagtatampok Gates sa 10 Taon Bash
Ang Microsoft Research Asia ay lumago mula sa isang dosenang tao noong 1998 hanggang sa higit sa 350 dekada mamaya.
Paano patakbuhin ang Bash sa Ubuntu sa Windows 10
Ang pagpapaandar sa Windows Subsystem para sa Linux ay magbibigay-daan sa iyo upang patakbuhin ang Bash sa Ubuntu sa Windows 10, Bash script , Linux-first tools.
Pagdating ng Bash
Ang mga arrow ay isa sa mga pinaka ginagamit at pangunahing istruktura ng data. Sa artikulong ito, takpan namin ang mga darating na Bash, at ipaliwanag kung paano gamitin ang mga ito sa iyong mga script ng Bash.







