Bash 스크립트에 다음이 있는 경우:
if [ $ACTION = deploy ]; then
${JAVA_HOME}/bin/java ${JVM_ARGS} weblogic.WLST << EOJ
connect('XXX','XXX','t3://XXX:8001')
jndi();
ls();
disconnect();
exit ();
EOJ
else
echo "XXX"
fi
EOJ에 오류가 있는 것 같습니다.
답변1
EOJ
완전히 왼쪽 정렬되어야 합니다. 선행 공백과 후행 공백이 없습니다. 또는 (필요에 따라) 첫 번째 항목을 .로 작성할 수 있거나 작성해야 합니다 <<'EOJ'
. 따옴표는 가능한 일부 쉘 확장을 비활성화합니다.
~에서info bash
Here Documents 이 유형의 리디렉션은 구분 기호만 포함된 줄(후행 공백 없음)이 나타날 때까지 현재 소스에서 입력을 읽도록 셸에 지시합니다. 이 지점까지 읽은 모든 행은 명령의 표준 입력으로 사용됩니다.
The format of here-documents is:
<<[-]word
here-document
delimiter
No parameter expansion, command substitution, arithmetic expansion, or
pathname expansion is performed on word. If any characters in word are
quoted, the delimiter is the result of quote removal on word, and the
lines in the here-document are not expanded. If word is unquoted, all
lines of the here-document are subjected to parameter expansion, com‐
mand substitution, and arithmetic expansion. In the latter case, the
character sequence \<newline> is ignored, and \ must be used to quote
the characters \, $, and `.
If the redirection operator is <<-, then all leading tab characters are
stripped from input lines and the line containing delimiter. This
allows here-documents within shell scripts to be indented in a natural
fashion.