Hogyan használjam: cat < < EOF [duplicate]

A kérdésre itt már vannak válaszok :

megjegyzések

  • Jelenlegi állapotában a szkriptnek idézetre van szüksége " a Thanks után, hogy befejezzem a karakterláncot.
  • Köszönöm Steve-nek a visszajelzést, igen hiányoltam az idézeteket. Kérem, irányítson egy kicsit a cat < < EOF kiegészítéssel a szkriptemhez?
  • A << EOF dolgot " itt dokumentumnak nevezzük ". itt , itt és itt . ' nem vagyok biztos benne, mit kérdezel a shell parancsfájlok két tucatnyi soráról, ezért ' ezt nem tudom kommentálni.
  • Ha ' hivatkozásokat mutat az emberekre, kérjük, mutassa meg őket erre .

Válasz

A << az örökletes. Minden, ami a << -et követi, a heredok határolójaként működik

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

Enter

Tehát, ha a három sort egy változóba szeretné tárolni, tegye meg az alábbiak szerint:

a

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

Enter

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

a szkript belsejéből

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

Megjegyzések

  • hogy megtehessem 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 < hossz (utótag); i ++) $ 1 / = 1024; nyomtatás int ($ 1) substr (utótag, i, 1), $ 3; } ' | head -n 22 | awk ' {print $ 1 " \ t \ t \ t " $ 2} ') sudo -u hdfs hadoop fs -df -h / user EOF) "
  • << olyan karaktersorozatokra vonatkozik, amelyeket én ' bizonyítottam, nem pedig parancsokat. Szeretné végrehajtani a parancsokat, és az eredményeket tárolni a DU_RESULTS_HOME fájlba?
  • nem, ezért a szkriptemben annyi változót használok, ezért megpróbálom megtanulni a macska < < eof technikát a változók számának csökkentése érdekében, és valószínűleg kerülni fogja a 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 "

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük