이 질문은 이전에 요청되었지만 해결되지 않는 것 같습니다.
내가 시도한 솔루션 중 하나는여기 문서. 다음 코드를 사용했습니다.
#!/bin/bash
su - mv2 <<EOSU
DELIVER_BRANCH="development"
echo ${DELIVER_BRANCH}
exit;
EOSU
위의 코드를 시도했지만 비트는 echo ${DELIVER_BRANCH}
아무것도 인쇄하지 않았습니다.
답변1
당신이 원하는 것:
#!/bin/bash
su - mv2 <<'EOSU'
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
첫 번째 항목 주위에 작은따옴표가 있습니다 EOSU
. 생략된 경우 구분 기호는 $
전달되기 전에 -보간을 거칩니다. 즉, 비어 "$DELIVER_BRANCH"
있는 현재(호출 shell 의 경우 su
) 내용 으로 대체됩니다 $DELIVERY_BRANCH
.
DELIVERY_BRANCH=production
cat <<'EOSU'
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
인쇄
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
하지만
DELIVERY_BRANCH=production
cat <<EOSU
DELIVER_BRANCH="development"
echo "$DELIVER_BRANCH"
exit;
EOSU
인쇄
DELIVER_BRANCH="development"
echo production
exit;