Kuinka käytän: cat < < EOF [kaksoiskappale]

Tähän kysymykseen on jo annettu vastauksia :

kommentteja

  • Nykyisessä muodossaan komentosarja tarvitsee lainauksen " Thanks jälkeen. päättää merkkijono.
  • Kiitos Steve palautteesta, kyllä kaipasin lainauksia. Voitteko ohjata minua hieman kissan < < EOF-lisäyksestä skripteihini?
  • << EOF asiaa kutsutaan " tässä dokumentiksi ". Katso täällä , täällä ja täällä . En ' ole varma, mitä kysyt näistä kahdesta tusinasta komentosarjan rivistä, joten en voi ' kommentoida sitä.
  • Jos ' osoitat ihmisille viitteitä, osoita heitä tähän .

Vastaus

<< on perintö. Kaikki, mikä seuraa << -toimintoa, toimii heredokin erottimena

cat <<EOF This is first line So, this is 2nd Again, another line EOF 

Enter

Joten jos haluat tallentaa kolme riviä muuttujaan, tee se kuten alla:

komentoriviltä

$ var="$(cat <<EOF > Bingo > Gotcha > Enough > EOF > )" 

Enter

$ echo "$var" #double quotes are important Bingo Gotcha Enough 

komentosarjan sisäpuolelta

#!/bin/bash var="$(cat <<EOF Bingo Gotcha Enough EOF )" echo "$var" 

Kommentit

  • jotta voin tehdä DU_RESULTS_HOME = " $ (cat < < EOF sudo -u hdfs hadoop fs -du -s / user / * | sort -r -k 1 -g | awk ' {suffix = " KMGT "; for (i = 0; $ 1 > 1024 & & i < pituus (loppuliite); i ++) $ 1 / = 1024; Tulosta sis ($ 1) substraatti (loppuliite, i, 1), 3 $; } ' | head -n 22 | awk ' {tulosta $ 1 " \ t \ t \ t " $ 2} ') sudo -u hdfs hadoop fs -df -h / käyttäjän EOF) "
  • << on tarkoitettu merkkijonoille, jotka olen osoittanut ', ei komennoille. Haluatko suorittaa korkeat komennot ja tallentaa tulokset DU_RESULTS_HOME?
  • ei, joten komentosarjassa käytän niin monia muuttujia, joten yritän oppia kissan < < eof-tekniikka muuttujien määrän vähentämiseksi ja välttämään todennäköisesti tulostusmuotoa, joka on printf '% s \ n \ n \ n \ n% s \ n \ n% s \ n% s \ n \ n \ n \ n \ n% s \ n% s \ n % s ' " $ MESSAGE_BODY " " $ DF_RESULTS_HOME " " $ DU_RESULTS_HEADER_USER " iv id = ”9ec74a5

$ DU_RESULTS_HOME " | / bin / mail -s " $ MESSAGE_SUBJECT " -r " $ MESSAGE_SENDER " " $ MESSAGE_EMAIL "

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *